linux系统的第八天

   昨天,学习了正则中元字符的一部分,今天,学习正则中元字符的另一部分,和扩展正则表达式。

   正则中元字符

 ^[]

  例子:匹配以#开头的行       grep ^[#] file 

             [^a] 匹配除了a意外的任意字符          grep  [^a]  file

             过滤没有包含qaz的行         grep [^qaz]  file   

              过滤出#开头后面有一个空格的行        grep  “^[[:space:]]”  2.txt

   5) 显示匹配到的行的前的若干行

            -An:显示匹配到的内容的后n行       -Bn:显示匹配到的内容的前n行    

            -Cn:显示匹配到的内容的前后各n行    

              例子:匹配包含到root的行的前3行。     答:   grep   -B3  “root”  file

6)次数匹配

      “*” 前面字符出现了任意次数 (0,1,n)           例子: a*

     “.*” 表示任意长度的任意字符          例子:a.*b     grep    “a.b”  2.txt

       "?" 表示其前面字符出现最多一次    

             例:   a\{m,n}b    -E  a{m,n}b      b前面的a至少出现m,最多n次

                       grep -E "a{1,1}b"  2.txt      grep -E "a?b" 2.txt    b前面的a至少1次

                     grep  -E  "a{1,}b"  2.txt        b前面的a至少1次最多不限

7)位置锚定

     ^ 表示以n为开头的行                 $ 表示以n为结尾的行

          例:以yum为结尾的行             grep  "yum$"  file

                     \<n    表示单词首部       n\>   表示单词尾部     ^$   表示空白行

8)  分组

      \(      \)     将一个内容当作一个整体看待       \1     \2  

            例子:在11.txt中,过滤出出现过俩个相同数字的行       grep  "\([[:digit:]]\).*\1"  2.txt

扩展正则表达式

     基础正则:    grep  [选项]  匹配内容   文件

           扩展:       grep  -E  匹配内容  文件       egrep  匹配内容  文件

          {1,}  等同  +     : 其前面的字符至少出现过1次。    或:|

                    例子:过滤出开头是a(不区分大小写) 的行

                       答: egrp  "^(a|A)"   2.txt     或者     egrep  "^[aA]"  2.txt

            

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值