1. 递归搜索文件 如果需要在多级目录中对文本进行递归搜索,可以使用:
[root@server tmp]# grep 'root' . -R -n
2. grep匹配多个样式 在进行匹配的时候通常只指定一个样式。然而,我们可以用选项 -e来指定多个匹配样式:
$ grep -e "pattern1" -e "pattern"
3. 在 grep搜索中包括或排除文件
只在目录中递归搜索所有的 .c和 .cpp文件:
$ grep "main()" . -r --include *.{c,cpp}
注意, some{string1,string2,string3} 会扩展成 somestring1 somestring2 somestring3 。
4. 打印出匹配文本之前或之后的行
要打印匹配某个结果之后的3行,使用 -A 选项:
$ seq 10 | grep 5 -A 3
5
6
7
8
要打印匹配某个结果之前的3行,使用 -B 选项:
$ seq 10 | grep 5 -B 3
2
3
4
5
要打印匹配某个结果之前以及之后的3行,使用-C 选项:
$ seq 10 | grep 5 -C 3
2
3
4
5
6
7
8
如果有多个匹配,那么以一行“–”作为各匹配之间的定界符:
$ echo -e "a\nb\nc\na\nb\nc" | grep a -A 1
a
b
--
a
b