grep 高级例解

grep 是在linux查找文本过程最常用的命令,熟悉grep的一些常用命令,可以在个别时候有效提高工作效率。


场景一:需要查找一个目录及子目录所有文件中出现 aaa 但是同时不能出现bbb的行,查找不区分大小写


grep -rin 'aaa'|grep -v  bb


解释:

r 递归查找

i 不区分大小写

n 显示行号

v  反向匹配(形象点就是不允许出现的)


场景二:待查找的文件有几千万行,你的规则有几百条


grep -f patter.txt file

f :后跟规则文件,把每条正则表达式写入patrern.txt中

场景三:你需要使用linux扩展正在表达式

grep -E pattern file

默认情况下grep只支持基础正在表达式,E选项可以支持扩展表达式(也可以待地gerp -E 为egrep)

什么是扩展正在表达式?

linux扩展正在表达式 是在原有标准正则表达式

+    重复一个或者一个以上的前一个字符,如a+表示一个以上的a
?    0个或者1个前一个字符,如a?表示空白或者1个a
|    或,如要查找aa或者bb这两个字符串,egrep -n 'aa|bb  file
()    查找组字符串,如查找head或者had, egrep -n 'h(ea|a)d' file
()+    多个重复组的判别,如查找A开头C结尾,中间有一个以上的xyz或aaa,egrep -n 'A(xyz|aaa)+C' file


场景四:你想看到被匹配的行周围(前后)的行

grep -A2  -B2  'aaa'  file

-A :after,显示匹配行后的行 -A2 显示 后2行

-B :before,显示匹配行前的行 -B2 显示 前2行

如果你真的同时需要显示,前后各n行,那么你可以用-C选项

grep -C2 'aaa' file 作用与-A2 -B2完全相同




'



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值