zoukankan      html  css  js  c++  java
  • 文本三剑客之grep

    接受正则表达式,按行匹配,将会过滤出匹配的所有行

    格式:

    grep   [OPTION]...     PATTERN    [FILE]...

    可以看出,grep后可以同时接多个文件

    选项OPTION

    --color=auto                 通常情况下grep过滤后不会有颜色区分,使用该选项添加颜色

    -E                      支持扩展的正则表达式

    -o                      grep默认输出匹配的行,使用该选项仅输出匹配的关键词

    -v                     反向匹配

    -c                      匹配行的数量,而不是匹配次数(一行之内有多个匹配,仅计数1)

    -n                     输出行号

    -i                      忽略大小写

    -P                      支持perl的正则

    -w                     把表达式作为单词来查找,相当于正则中的"<...>"(...表示你自定义的规则)

    -x                      被匹配到的内容和某行完全相同才能别过滤出来,相当于正则"^...$"

    -m NUM            只在前NUM行进行匹配,之后的所有行不再匹配

    -q                 不输出匹配的字符串,而只是想知道是否能够成功匹配(通过返回值)

    -a                      搜索二进制文件

    -b          通常配合-o选项使用,打印出匹配行的字节偏移量(注意是行的字节偏移量,不是关键词)

    -l          在多个文件中搜索匹配文本,找出位于哪个文件仅会输出文件列表(不在输出匹配行)

    -L         和-l相反,列出不匹配的文件列表

    -r和-R          在某个目录中搜索匹配的模式,且递归进行

    -e            匹配多个模式:$ grep     -e "pattern1"    -e "pattern2"

    -f  pattern_file            在文件中指定多个样式,每个样式一行,也可匹配多个模式

    -Z            输出每个匹配行或文件列表(-l-L的输出)时,使用null)作为文件分隔,而不是默认的

    --include  *.{c,cpp}                仅搜索以.c或.cpp结尾的文件

    --exclude  "readme.txt"              在除readme.txt之外的文件中进行搜索

    --exclude-dir  DIR                           排除某个目录,不进行搜索

    --exclude-from  FILE                       从文件中读取要排除的文件列表

    -A  n              输出匹配行之后的n行

    -B  n              输出匹配行之前的n行

    -C  n              输出匹配行之前及之后各n行

    示例: 

    [root@slave1 ~]# alias
    alias egrep='egrep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias grep='grep --color=auto'          #

    egrep扩展

    egrep在grep的基础上增加了更多的元字符。但是egrep不允许使用(),{},因为egrep本身就支持扩展的正则表达式

    egrep使用的正则表达式元字符

      

  • 相关阅读:
    [LeetCode 1029] Two City Scheduling
    POJ 2342 Anniversary party (树形DP入门)
    Nowcoder 106 C.Professional Manager(统计并查集的个数)
    2018 GDCPC 省赛总结
    CF 977 F. Consecutive Subsequence
    Uva 12325 Zombie's Treasure Chest (贪心,分类讨论)
    Poj 2337 Catenyms(有向图DFS求欧拉通路)
    POJ 1236 Network of Schools (强连通分量缩点求度数)
    POJ 1144 Network (求割点)
    POJ 3310 Caterpillar(图的度的判定)
  • 原文地址:https://www.cnblogs.com/wyzhou/p/9313800.html
Copyright © 2011-2022 走看看