tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
阅读:3598回复:7

grep 命令

楼主#
更多 发布于:2013-04-09 17:53
北京@悟()  17:42:05
grep -oP是什么意思啊?
   
北京@KingGoo.Com<>  17:47:59
只弄出来你要搜索那部分
   
北京@KingGoo.Com<>  17:50:56
P  是perl扩展
o  是显示你匹配那部分
   
北京@悟()  17:51:12
谢谢
   
广州@豬頭餅()  17:51:35
其实 man 一下或者help 一下就有的了
    
北京@KingGoo.Com<>  17:51:50
 -o, --only-matching
              Show only the part of a matching line that matches PATTERN.
    
-P, --perl-regexp
              Interpret PATTERN as a Perl regular expression.

最新喜欢:

dongnandongna...
会不会我不知道,反正我在努力!
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
沙发#
发布于:2013-04-09 19:43
grep 正则

-E, --extended-regexp 采用扩展正则表达式。
-P,--perl-regexp 采用perl正则表达式
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
板凳#
发布于:2013-04-09 19:45
占位待补全
man
NAME
       grep, egrep, fgrep, rgrep - print lines matching a pattern

SYNOPSIS
       grep [OPTIONS] PATTERN [FILE...]
       grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

DESCRIPTION
       grep  searches the named input FILEs (or standard input if no files are
       named, or if a single hyphen-minus (-) is given as file name) for lines
       containing  a  match to the given PATTERN.  By default, grep prints the
       matching lines.

       In  addition,  three  variant  programs  egrep,  fgrep  and  rgrep  are
       available.   egrep  is  the  same  as  grep -E.   fgrep  is the same as
       grep -F.  rgrep is the same as grep -r.  Direct  invocation  as  either
       egrep  or  fgrep  is  deprecated,  but  is provided to allow historical
       applications that rely on them to run unmodified.
tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
地板#
发布于:2013-04-09 23:55
dongnan:@tscccn  赞一个,另外我把这个帖子移动到command 板块啦回到原帖
好的, 这个命令的是在系统管理里袄 我还以为shell呢
会不会我不知道,反正我在努力!
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
4楼#
发布于:2015-04-24 09:57
grep 统计次数
示例:匹配ssh 次数
w | grep ssh | wc -l
2

grep 统计参数
w | grep -c ssh
2


参数
-c, --count
              Suppress  normal  output;  instead  print  a count of matching lines for each input file.  With the -v, --invert-match option (see below), count non-matching lines.  (-c is specified by POSIX.)

#
tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
5楼#
发布于:2015-05-16 17:10
显示匹配行之后的N行
grep -A 3 -i "example" demo_text

显示匹配行之前的N行
grep -B 2 "single WORD" demo_text

显示匹配行前后的N行
grep -C 2 "Example" demo_text
会不会我不知道,反正我在努力!
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
6楼#
发布于:2015-12-02 09:14
grep 递归目录
目标
在某一目录下递归(所有子目录)查找某一字串:
#grep -r "字串" 目录名
grep -r 'dongnan' /var/log/nginx/

参数
加一个-r参数
-R, -r, –recursive

参考: grep技巧(-r):在某一目录下递归[所有子目录]查找某一字串
 
#
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
7楼#
发布于:2018-10-30 10:10
grep 只输出匹配的字符串
举个栗子
echo '711ms:lala' | grep -E '[0-9]+'
711ms:lala

默认情况下 grep会显示匹配的整行,如果只想显示匹配了的字符时,可以使用 -o 参数。

只输出匹配的字符串
echo '711ms:lala' | grep -oE '[0-9]+'
711

参数
-o, --only-matching
    Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.



#
游客

返回顶部