首页 > 其他 > 详细

小试牛刀:文本处理工具之grep、egrep详解

时间:2014-02-20 09:10:59      阅读:282      评论:0      收藏:0      [点我收藏+]

             

            grep、egrep命令


本文中主要介绍了linux系统下grep、egrep命令和正则表达式的基本参数和使用格式、方法。



1. Grep简介

grep (global search regular expression_r(RE) and print out theline)               (全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

     格式:grep [options] ‘PATERN‘ file,...

         --color=auto



2.Grep命令选项

-a :在二进制文件中,以文本文件的方式搜索数据

-? : 同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2          行。

-b:--byte-offset

   打印匹配行前面打印该行所在的块号码。

-c,--count

   只打印匹配的行数,不显示匹配的内容。

-f File,--file=File

   从文件中提取模板。空文件中包含0个模板,所以什么都不匹配。

-h,--no-filename

   当搜索多个文件时,不显示匹配文件名前缀。

-i,--ignore-case

   略大小写差别。

-q,--quiet

   取消显示,只返回退出状态。0则表示找到了匹配的行。

-l,--files-with-matches

   打印匹配模板的文件清单。

-L,--files-without-match

   打印不匹配模板的文件清单。

-n,--line-number

   在匹配的行前面打印行号。

-s,--silent

   不显示关于不存在或者无法读取文件的错误信息。

-v,--revert-match

   反检索,只显示不匹配的行。

-w,--word-regexp

   如果被\<和\>引用,就把表达式做为一个单词搜索。

-V,--version

   显示软件版本信息。



   3.基本正则表达式的元字符:grep -E

●字符匹配:

   [:alnum:] 所有字母和数字字符

   [:alpha:] 字母字符

   [:digit:] 数字字符[0-9]

   [:graph:] 非空字符(非空格、控制字符)

   [:lower:] 小写字符[a-z]

   [:cntrl:] 控制字符

   [:print:] 非空字符(包括空格)

   [:punct:] 特殊符号

   [:space:] 所有空白字符(新行,空格,制表符)

   [:upper:] 大写字符[A-Z]

[:xdigit:] 十六进制数字(0-9,a-f,A-F)


     次数匹配:用来匹配其前面的字符的次数

          *:任意一次      x*y,可以匹配到xxy, xy, y;

          \?:0次或一次    x\?y,xy,y,xxy

          \{m\}:匹配m次

          \{m,n\}:出现m到n次

          \{m,\}:至少出现m次;

          \{0,n\}:至多出现n次;


      位置锚定:用于指定字符出现的位置

          ^:锚定行首    ^Char

          $:锚定行尾    char$

          ^$:空白行

          \<char:锚定词首    \bchar

          char\>:锚定词尾    char\b

          分组:\(\)    \(ab\)*xy


      引用:

           \1:前向引用,应用前面的第一个左括号以及与之对应的右括号中的模式所匹配                       到的内容\(a.b\)xy\1:abxy,

           \2:...

                 

 

   4、egrep

   egrep:使用扩展正则表达来构建模式,相当于grep -E是grep的扩展,支持更多的re元字符.linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。

       补充:

       ●次数匹配:(扩展功能中,不用使用\来转义,\可以省略)

       *:匹配其前面的字符任意次:

       {m}:匹配m次

       {m,n}:出现m到n次

       {m,}:至少出现m次;

       {0,n}:至多出现n次;


       |:或者,ac | bc:ac或bc,a(c|b)c:acc或abc

           grep -E "con(C|c)at"    conCat或concat


小试牛刀:文本处理工具之grep、egrep详解

原文:http://lemidi.blog.51cto.com/8601832/1360790

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!