首页 > 其他 > 详细

文本处理工具grep、egrep的具体用法

时间:2014-02-20 15:28:31      阅读:373      评论:0      收藏:0      [点我收藏+]

一、grep、egrep含义

   grep:(global search regular expression(RE)and print out the line);文本搜索工具,根据用户指定的文本模式(PATTERN)对目标文件进行逐行搜索,并显示能够被模式匹配到的行。

   egrep:相当于 grep -E ;使用扩展正则表达式来构建模式。


二、基本用法

   1、格式:grep [options] ‘PATTERN‘ file, ...(可以指定多个文件)

bubuko.com,布布扣


                   --color=auto:可以高亮显示匹配到的内容;

bubuko.com,布布扣


   2、参数

       2.1:常用参数

           -v:反向显示,显示不能被模式所匹配到的行;

bubuko.com,布布扣


           -o:只显示被模式匹配到的字串,而非整行;

bubuko.com,布布扣


           -i:不区分字符大小写。ignore-case;

bubuko.com,布布扣


           -E:支持扩展正则表达式;

           -A#:显示匹配到的内容及其下面#行;

bubuko.com,布布扣


           -B#:显示匹配到的内容及其上面#行;

           -C#:显示匹配内容及其上下各#行;

bubuko.com,布布扣


       2.2:其他参数

               -s或--no-messages: 不显示错误信息。

               -V或--version: 显示版本信息。

               -w或--word-regexp: 只显示全字符合的列。    

               -x或--line-regexp: 只显示全列符合的列。

               -y: 此参数的效果和指定“-i”参数相同。

               --help 在线帮助。

               同时也可以使用man grep来查看具体的详细参数与说明。


三、正则表达式

   1、含义:正则表达式(Regular Expression);正则表达式使用单个字符串来

            描述、匹配一系列符合某个句法规则的字符串。

基本正则表达式和扩展正则表达式:工作于贪婪模式,尽可能长的匹配字符;

   2、基本正则表达式元字符

       字符匹配:

            .:匹配任意单个字符;

bubuko.com,布布扣

            []:匹配指定范围内的任意单个字符;

               范围:bubuko.com,布布扣

bubuko.com,布布扣

            [^]:匹配指定范围外的任意单个字符;

bubuko.com,布布扣


       次数匹配:

            *:匹配其前面字符的任意次;0次或多次

bubuko.com,布布扣


            .*:匹配任意长度的任意字符;

bubuko.com,布布扣

            \?:匹配其前面字符的0次或1次;

bubuko.com,布布扣

            \{m\}:匹配m次;

bubuko.com,布布扣

            \{m,n\}:匹配至少m次,至多n次;

bubuko.com,布布扣

            \{m,\}:匹配至少m次;

bubuko.com,布布扣

            \{0,n\}:匹配至多n次;

bubuko.com,布布扣

       位置锚定:

            ^:锚定行首;

bubuko.com,布布扣

            $:锚定行尾;

bubuko.com,布布扣

            \<|\b:锚定词首;

bubuko.com,布布扣

            \>|\b:锚定词尾;

bubuko.com,布布扣

            ^$:为空白行;

       分组:

            \(\):分组

bubuko.com,布布扣

            \#:#为数字;对分组的字符串基于位置进行引用;

                例:\1;引用前面的第一个左括号以及与之对应的右括号中

                        的模式所匹配的内容。

bubuko.com,布布扣

   3、扩展正则表达式元字符:大部分与正则表达式的元字符是相同的,但是\转义符

      是不需要添加的。

       字符匹配:

           .:任意单个字符;

           []:指定范围内的任意单个字符;

           [^]:指定范围外的任意单个字符;

       次数匹配:

           *:其前面的字符任意次;

           ?:匹配其前面的字符0次或1次;

           +:匹配其前面的字符至少1次;

bubuko.com,布布扣

           {m}:匹配其前面的字符m次;

           {m,n}:至少m次,至多n次;

           {m,}:至少m次;

           {0,n}:至多n次;

       锚定:与基本正则表达式相同;

       分组:

             ():分组;

             |:或者;

bubuko.com,布布扣


四、具体的例子

显示/proc/meminfo中以大小写S开头的行;

bubuko.com,布布扣


取出默认shell为非bash的用户;

bubuko.com,布布扣

显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,

   而后又有至少一个非空白字符的行;

bubuko.com,布布扣

添加用户bash和testbash、basher,而后找出当前系统上其用户名和

   默认shell相同的用户;

bubuko.com,布布扣


本文出自 “Soul” 博客,请务必保留此出处http://chenpipi.blog.51cto.com/8563610/1360509

文本处理工具grep、egrep的具体用法

原文:http://chenpipi.blog.51cto.com/8563610/1360509

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