码迷,mamicode.com
首页 > 其他好文 > 详细

grep,egrep及正则表达式详解

时间:2015-04-03 06:57:41      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:正则表达式   grep   egrep   

1、定义:
   grep:文本搜索工具,根据用户的需要,使用正则表达式,搜索文本并显示匹配到的内容相对应的行。
   egrep:文本搜索工具,根据用户的需要,使用扩展正则表达式,搜索文本并显示匹配到的内容相对应的行。
   正则表达式:由元字符及正常字符组成,根据用户要求,来实现表达控制和通配等功能。
2、参数
    grep [-oviABCE] [PATTERN] [FILE]...
       --color=auto:设置匹配到的字符颜色变化
       -o:显示匹配到的行
       -v:显示不匹配到的行
       -i:不分字母大小写搜索
       -A #:显示匹配行外也显示被匹配行后的#行
       -B #:显示匹配行外也显示被匹配行前的#行
       -C #:显示匹配行外也显示被匹配行前后各#行
       -E:扩展正则表达式,等同于 egrep
    正则表达示元字符不同的模式:
       1.字符匹配:
          .:匹配任意单个字符
          []:匹配范围内的任意单个字符
          [^]:匹配范围外的任意单个字符
        2.次数匹配:
           *:匹配任意长度
           \?:匹配0次或1次
           \+:匹配至少1次
           \{m\}:匹配m次
           \{m,n\}:匹配至少m次,至多n次
        3.位置锚定:
           ^:锚定行首
           $:锚定行尾
        4.单词锚定:
            \<:锚定词首
            \>:锚定词尾
         5.分组:
            \(\) \1 \2...:分组模式
 3、例题:
     1、找出/etc/passwd文件中的一位数或两位数;

     

技术分享

另一种方法:

 技术分享

  

2、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;

 技术分享         

   3、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
      技术分享

   4、打出netstat -tan命令执行结果中含‘LISTEN’,后或跟空白字符结尾的行;

技术分享

   5、添加用户bash, ttbash, bashers, nologins (此一个用户的shell为/sbin/nologins),而后找出当前系统上其用户名和默认shell相同的用户的信息;
技术分享

         难点:易把[[:alnum:]]后跟* 这样就代表空字符也在内,并且要加词尾符,要不用户名和SHELL只要有一个 单词一样就会匹配。

 

本文出自 “linux课堂笔记” 博客,请务必保留此出处http://wangxinjian.blog.51cto.com/6334977/1627825

grep,egrep及正则表达式详解

标签:正则表达式   grep   egrep   

原文地址:http://wangxinjian.blog.51cto.com/6334977/1627825

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!