grep

2022-10-27 14:59:10 浏览数 (3)

参数

选项

说明

备注

--color=auto

对匹配到的内容着色显示

-v

显示没有被匹配到的行

-i

忽略字符大小写

-n

显示匹配到的行号

-c

统计匹配到的行数

-o

只显示匹配到的字符串

-q

静默模式

-A #

匹配后#行

-B #

匹配前#行

-C #

匹配前后各#行

-E

使用扩展正则表达式

grep -e 'abc' -e 'def' FILENAME

-P

使用Perl正则表达式

-e

多个选项间的或关系

-w

匹配整个单词

显示所有包含root的行
代码语言:javascript复制
grep root /etc/passwd

显示所有不包含root的行,参数-v,意思是取反
代码语言:javascript复制
grep -v root /etc/passwd

忽略字符大小,参数-i
代码语言:javascript复制
grep -i ROOT /etc/passwd

显示匹配到的行号,参数-n
代码语言:javascript复制
grep -n root /etc/passwd

显示匹配到的行数,参数-c
代码语言:javascript复制
grep -c root /etc/passwd

包含root的行,一共有两行

只显示匹配到的字符串,参数-o
代码语言:javascript复制
grep -o root /etc/passwd

静默模式,参数-q
代码语言:javascript复制
grep -q root /etc/passwd

包含不包含root,都不显示。 那这个参数有什么用呢?比如我想知道在一个文件当中,是否包含某一个字符串,但是我不关心包含的具体是什么,我只想知道,是包含还是不包含,只关心结果,就可以使用这个参数。 $?是一个变量,就是前面一个命令的执行结果,如果前面命令匹配到了,就为0,也就是说这个文件中包含

前面的命令没有匹配到,就为非0,这个文件中不包含aaa

显示匹配字符串的后#行
代码语言:javascript复制
grep -n -A 3 root /etc/passwd

多个条件的或关系
代码语言:javascript复制
grep -e root -e ftp /etc/passwd

只要包含root或包含ftp的行,,只要满足一个条件就显示出来

1 人点赞