grep程序在文本中搜索特定模式的行。$ cat /etc/passwd | grep tom
tom:x:1001:1001:,,,:/home/tom:/bin/bash上面的例子从/etc/passwd中抽取有gaga的行。
使用-i命令选项忽略字母大小写差异,使用-v选项显示不包含特定模式的行。
-c选项显示匹配行的数量:
$ cat /etc/passwd | grep -c bash
3
$ cat /etc/passwd | grep -c tom
1-n选项对行进行标号,可以用于确定匹配行的位置:
$ cat /etc/passwd | grep -n tom
31:tom:x:1001:1001:,,,:/home/tom:/bin/bash从上面的例子看出,只要搜索模式gaga在行中,就会被匹配到;如果想要匹配单词gaga,则需使用-w选项;以行为单位进行匹配,则需要使用-x选项。下面的例子搜索包含bash单词的行:
$ cat /etc/passwd | grep -w bash
tom:x:1001:1001:,,,:/home/tom:/bin/bash如果在多个文件中搜索,使用-l列出包含匹配行的文件的文件名,-L则列出不包含匹配行的文件的文件名。
使用-r在目录中进行递归搜索:
$ grep -lr tom ./
./.bash_history这条命令列出在当前目录下递归搜索的包含gaga的文件的文件名。