强悍的 Linux —— grep 与 egrep

<a href=“http://blog.csdn.net/lanchunhui/article/details/51487497”, target="_blank"> 强悍的 Linux —— 强悍的 grep

  • grep -inr {string}:在当前目录或子目录的文件中搜索某个字符串;
  • -A:打印匹配行的后多少多少行:
    • grep -A 10 1371:后十行;

0. egrep == grep -E

linux 下的正则表达式,分为基础表达式,和扩展正则表达式。-E 可以使 grep 使用扩展正则表达式,也可以使用默认启用扩展正则表达式的 egrep 命令。

1. 经典用法

  • -v:实现对某些行(注释行)的删除

    $ cat test.c | grep -v ^[//] >> test2.c
    
  • 全字匹配

    • grep:grep -w "abc"-w:word regexp)完全匹配字词(以空格或其他特殊字符分割),
      • abcd 便不会匹配到;
  • 查询文件的修改时间:(使用 stat 命令)

    stat test.txt | grep -i "modify"
    

2. 源码的阅读

比如当我们在阅读 caffe 的源码时,在 caffe 根目录下的 src/caffe/layer_factory.cpp 中有个宏调用:REGISTER_LAYER_CREATOR(Pooling, GetPoolingLayer),对于这个宏可能有所困惑,我们在 caffe 根目录下运行如下命令:

$ grep -n -H -R "REGISTER_LAYER_CREATOR" *
  • -n:显示行号,便于定位;
  • -H:显示文件名,便于定位;-h:不显示文件名;
  • -R:递归查找每个子目录,适合工程较大、分多个目录存放的场景;

3. 主要参数

  • -c:只输出匹配行的计数。
  • -I:不区分大 小写(只适用于单字符)。
  • -h:查询多文件时不显示文件名。
  • -l:查询多文件时只输出包含匹配字符的文件名。
  • -n:显示匹配行及 行号。
  • -s:不显示不存在或无匹配文本的错误信息。
  • -v:显示不包含匹配文本的所有行

pattern 正则表达式主要参数:

  • \: 忽略正则表达式中特殊字符的原有含义,即转义。
  • ^:匹配正则表达式的开始行。
  • $: 匹配正则表达式的结束行。
  • <:从匹配正则表达式的行开始。
  • >:到匹配正则表达式的行结束。
  • [ ]:单个字符,如[A]即A符合要求 。
  • [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    • {}:出现的次数;
  • 。:所有的单个字符。
    • :有字符,长度可以为0。

4. 简单示例

  • $ grep ‘test’ d*
    显示所有以d开头的文件中包含 test 的行。

  • $ grep ‘test’ aa bb cc
    显示在aa,bb,cc文件中匹配test的行。

  • $ grep ‘[a-z]{5}’ aa
    显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

  • $ grep ‘w(es)t.\1′ aa
    如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用”\”号进行转义,直接写成’w(es)t.
    \1′就可以了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

五道口纳什

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

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

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

打赏作者

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

抵扣说明:

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

余额充值