打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
grep命令详解

grep:Global search Regular Expression and Print out the line

-i:在搜索的时候忽略大小写

-n:显示结果所在行号

-c:统计匹配到的行数,注意,是匹配到的总行数,不是匹配到的次数

-o:只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行

-v:输出不带关键字的行(反向查询,反向匹配)

-w:匹配整个单词,如果是字符串中包含这个单词,则不作匹配

-Ax:在输出的时候包含结果所在行之后的指定行数,这里指之后的x行,A:after

-Bx:在输出的时候包含结果所在行之前的指定行数,这里指之前的x行,B:before

-Cx:在输出的时候包含结果所在行之前和之后的指定行数,这里指之前和之后的x行,C:context

-e:实现多个选项的匹配,逻辑or关系

-x: 只显示全列符合的列

-E:使用扩展正则表达式,而不是基本正则表达式,在使用”-E”选项时,相当于使用egrep

^ : 匹配正则表达式的以“某字符串”开头的行

$ : 匹配正则表达式的以“某字符串”结尾的行

cat a.txt
awqkkjdnsabc
abc
01233
d68823

dadsew
ddddsss
001TESTaaa
002testbbb
ddd eee abc 123
  1. -i:在搜索的时候忽略大小写

    cat a.txt |grep -i test
    001TESTaaa
    002testbbb
    
  2. -n:显示结果所在行号

    cat a.txt |grep -n test
    9:002testbbb
    
  3. -c:统计匹配到的行数,注意,是匹配到的总行数,不是匹配到的次数

    cat a.txt |grep -c -i test
    2
    
  4. -o:只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行

    cat a.txt |grep -o test
    test
    
  5. -v:输出不带关键字的行(反向查询,反向匹配)

    cat a.txt |grep -v a
    01233
    d68823
    
    ddddsss
    002testbbb
    
  6. -w:匹配整个单词,如果是字符串中包含这个单词,则不作匹配

    cat a.txt |grep -w abc
    abc
    ddd eee abc 123
    
  7. -Ax:在输出的时候包含结果所在行之后的指定行数,这里指之后的x行,A:after

    cat a.txt |grep -A1 01233
    01233
    d68823
    
  8. 在输出的时候包含结果所在行之前的指定行数,这里指之前的x行,B:before

    cat a.txt |grep -B1 01233
    abc
    01233
    
  9. -Cx:在输出的时候包含结果所在行之前和之后的指定行数,这里指之前和之后的x行,C:context

    cat a.txt |grep -C1 01233
    abc
    01233
    d68823
    
  10. -e:实现多个选项的匹配,逻辑or关系

    cat a.txt |grep -e 01233 -e d68823
    01233
    d68823
    
  11. -x: 只显示全列符合的列

    cat a.txt | grep -x abc
    abc
    
  12. ^ : 匹配正则表达式的以“某字符串”开头的行

    cat a.txt |grep "^d"
    d68823
    dadsew
    ddddsss
    ddd eee abc 123
    
  13. $ : 匹配正则表达式的以“某字符串”结尾的行

    cat a.txt |grep "3$"
    01233
    d68823
    ddd eee abc 123
    
  14. -E:使用扩展正则表达式,而不是基本正则表达式,在使用”-E”选项时,相当于使用egrep。

    • [ ] : 单个字符,如[A] 即A 符合要求
    • [^ ] : 显示不包括括号中字符串的所有行
    • [ - ] : 范围匹配,如[A-C],即A、B、C都符合要求;如[a,b],即只有a和b符合要求
    • . :单个字符,匹配任意一个字符
    • *** :匹配“*”前面的字符,匹配0个或无数个**
    • \ :用来屏蔽一个元字符的特殊含义,使其作为单纯的一个字符
  15. 多个文件中查找

    grep "file" file_1 file_2 file_3
    
  16. 在多级目录中对文本进行递归搜索

    # 搜索当前目录下递归搜索
    grep "text" . -r -n
    # 搜索当前目录下递归搜索以.py 结尾的文件
    grep -E  "\.py$" . -r -n
    # 只在目录中所有的.php和.html文件中递归搜索字符"main()"
    grep "main()" . -r --include *.{php,html}
    # 在搜索结果中排除所有README文件
    grep "main()" . -r --exclude "README"
    
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
linux返回用户主目录的命令有哪些,Linux基本命令汇总
图解正则表达式,这一篇就够了
培养这10个习惯,你就离UNIX高手更进一步了
对话 UNIX,第 9 部分: 正则表达式
linux中grep命令的用法
linux grep命令及实例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服