linux grep

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

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


    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′就可以了。


    grep -r         # 明确要求搜索子目录

    grep -d skip     # 忽略子目录

    grep linux /usr/src/linux/Documentation/* | less  

    grep -r -i -n -w "KPP_BASE_ADDR" *

    grep -i pattern files  : 不区分大小写地搜索。默认情况区分大小写,

    grep -l pattern files  : 只列出匹配的文件名,

    grep -L pattern files  : 列出不匹配的文件名,

    grep -w pattern files  : 只匹配整个单词,而不是字符串的一部分(如匹配'magic',而不是'magical'),

    grep -C number pattern files  : 匹配的上下文分别显示[number]行,

    grep pattern1 | pattern2 files  : 显示匹配 pattern1 或 pattern2 的行,

    grep pattern1 files | grep pattern2  : 显示既匹配 pattern1 又匹配 pattern2 的行。

    /* \< 和 \> 分别标注单词的开始与结尾 */

    grep man * 会匹配 'Batman'、'manic'、'man'等,
    grep '\<man' * 匹配'manic'和'man',但不是'Batman',
    grep '\<man\>' 只匹配'man',而不是'Batman'或'manic'等其他的字符串。
    '^' : 指匹配的字符串在行首,
    '$' : 指匹配的字符串在行尾,

    'ls -l | grep '^a'  # 通过管道过滤ls -l输出的内容,只显示以a开头的行。

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值