首页
学习
活动
专区
圈层
工具
发布

Linux中的管道命令(五)

grep程序在文本中搜索特定模式的行。

代码语言:javascript
复制
$ cat /etc/passwd | grep tom
tom:x:1001:1001:,,,:/home/tom:/bin/bash

上面的例子从/etc/passwd中抽取有gaga的行。

使用-i命令选项忽略字母大小写差异,使用-v选项显示不包含特定模式的行。

-c选项显示匹配行的数量:

代码语言:javascript
复制
$ cat /etc/passwd | grep -c bash
3
$ cat /etc/passwd | grep -c tom
1

-n选项对行进行标号,可以用于确定匹配行的位置:

代码语言:javascript
复制
$ cat /etc/passwd | grep -n tom
31:tom:x:1001:1001:,,,:/home/tom:/bin/bash

从上面的例子看出,只要搜索模式gaga在行中,就会被匹配到;如果想要匹配单词gaga,则需使用-w选项;以行为单位进行匹配,则需要使用-x选项。下面的例子搜索包含bash单词的行:

代码语言:javascript
复制
$ cat /etc/passwd | grep -w bash
tom:x:1001:1001:,,,:/home/tom:/bin/bash

如果在多个文件中搜索,使用-l列出包含匹配行的文件的文件名,-L则列出包含匹配行的文件的文件名。

使用-r在目录中进行递归搜索:

代码语言:javascript
复制
$ grep -lr tom ./
./.bash_history

这条命令列出在当前目录下递归搜索的包含gaga的文件的文件名。

下一篇
举报
领券