选项 | 说明 | 备注 |
---|---|---|
--color=auto | 对匹配到的内容着色显示 | |
-v | 显示没有被匹配到的行 | |
-i | 忽略字符大小写 | |
-n | 显示匹配到的行号 | |
-c | 统计匹配到的行数 | |
-o | 只显示匹配到的字符串 | |
-q | 静默模式 | |
-A # | 匹配后#行 | |
-B # | 匹配前#行 | |
-C # | 匹配前后各#行 | |
-E | 使用扩展正则表达式 | grep -e 'abc' -e 'def' FILENAME |
-P | 使用Perl正则表达式 | |
-e | 多个选项间的或关系 | |
-w | 匹配整个单词 |
grep root /etc/passwd
grep -v root /etc/passwd
grep -i ROOT /etc/passwd
grep -n root /etc/passwd
grep -c root /etc/passwd
包含root的行,一共有两行
grep -o root /etc/passwd
grep -q root /etc/passwd
包含不包含root,都不显示。 那这个参数有什么用呢?比如我想知道在一个文件当中,是否包含某一个字符串,但是我不关心包含的具体是什么,我只想知道,是包含还是不包含,只关心结果,就可以使用这个参数。 $?是一个变量,就是前面一个命令的执行结果,如果前面命令匹配到了,就为0,也就是说这个文件中包含
前面的命令没有匹配到,就为非0,这个文件中不包含aaa
grep -n -A 3 root /etc/passwd
grep -e root -e ftp /etc/passwd
只要包含root或包含ftp的行,,只要满足一个条件就显示出来