Linux命令详解(10)-grep命令

grep命令非常强大。它可以帮助用户在庞大的数据流或文件中匹配条件并输出相关行

--help选项获得帮助信息。

grep指令如果发现某文件的内容符合所指定的模板样式,默认grep指令会把含有模板样式的那行显示出来。若不指定任何文件名,或者给与的文件名为“-”,则grep紫惠玲会从标准输入设备读取数据。 

相关命令:egrep,fgrep,rgrep

选项选项说明
-A输出包含匹配到的行之后的若干行数据(A选项后需要跟数字,代表多少行)
-a不要忽略二进制的数据,如果grep找到符合模板样式的内容,但该文件的数据是二进制格式,使用本参数可强制显示内容。否则会只通知有符合条件内容,但不显示内容。
-B输出包含匹配到的行之前的若干行数据(B选项后需要跟数字,代表多少行)
-b在显示符合模板样式的那一行之前,标示处改行第一个字符的位编号。编码数从文件的第一字符算起,亦即每个文件的第一个字符,其位编号为1.
-C输出包含匹配到的行之前和之后的若干行数据(C选项后需要跟数字,代表多少行)
-c计算符合模板样式的行数,使用本参数将不显示符合条件的行的内容,而会显示每个文件里共有几行符合模板样式。
-d当指定要查找的是目录而非文件,必须使用这个选项参数。-d选项有三个动作可以设置:read、recurse和skip。默认值是read,表示grep指令会把目录视同一般文件搜索字串。recurse是递归处理,表示该目录下的所有文件及子目录一并处理。skip则是略过该目录不处理。
-E相当于执行egrep,将模板样式视为眼神的普同表示法来使用
-e指定字符串作为需找文件内容的模板样式。这和直接指定模板并无不同,但对于以“-”符号为首的字符串,可以有效避免和参数混淆,避免导致grep指令发生错误
-f指定模板文件,其内涵有一个或多个模板样式,让grep查找符合模板条件的文件内容,格式为每行一个模板样式。一个空的模板文件等于没有指定模板样式。
-F相当于执行fgrep。将模板样式视为固定字符串的列表,两两之间以新增行控制字符分割,任何一个字符串符合条件即可。
-G将模板样式视为普通的表示发来使用。此为默认值。
-h在显示符合模板样式的那一行之前,不标示所属的文件名。
-H在显示符合模板样式的那一行之前,标示所属的文件名,此为默认值。
-i忽略大小写差别,包括模板养殖和指定要查找的文件名。
-l列出文件内容符合指定的模板样式的文件名。
-L列出文件内容不符合指定的模板样式的文件名。
-n在显示符合模板样式的那一行之前,标示出改行的行数编号。
-q不显示任何信息。
-r与-d recurse 效果相同
-s不显示错误信息。
-V输出版本号
-v反向查找,输出结果排除符合本选项的内容
-w只显示全词符合的行。如样式模板设置为“email”,使用本选项参数后,内容“email”符合条件,但“myemail”不符合条件。
-x只显示全行符合的行。
-y与-i选项相同。

 例1:所搜/etc/ssh/sshd_config文件中包含“rh”的行

grep "rh" /etc/ssh/sshd_config

例2:所搜/etc/ssh/sshd_config文件中包含“rh”的行,并输出符合条件内容的前后两行

 如图,使用-C选项,对比输出结果,-C选项输出内容多2行。

例3:使用-v反向查找,过滤掉exit字符串

grep "rh" /etc/ssh/sshd_config |grep -v exit

 如图使用了-v选项,可以看到含有exit的行被过滤了。

例4:在当前目录下,对所有后缀为txt的文件搜索set字符串

grep seti *.txt

例5:在当前目录下,包含子目录,对所有后缀为txt的文件搜索set字符串

grep -i seti *.txt

或:

grep -d recurse  seti *.txt

例6:精准匹配单词world

grep -w world *.txt

例7:使用模板文件进行搜索

模板文件mypartern包含两行内容如下:

alpha

beta

使用该文件进行匹配,将会获得符合这两个字串的行。

grep -f mypartern *.txt

例8:匹配完整行为“hello world!”的行

grep -x "hello world!" *.txt 

例9:统计alpha出现的次数

grep -c alpha *.txt

例10:寻找不包含“alpha”的文件,只列出文件名

grep -L alpha *.txt

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值