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
的文件的文件名。
网友评论