《鸟哥的Linux私房菜》学习笔记(7)——grep及

系统 2463 0

一、grep命令                                                         

grep: 根据模式搜索文本,并将符合模式的文本行显示出来

模式: 由文本字符和正则表达式的元字符组合成的匹配条件

命令格式: grep [options] [file...]

      
        
          [root@hao log]#
        
      
      
        grep
      
      
        '
      
      
        root
      
      
        '
      
       /etc/
      
        passwd
      
      
        

root:x:
      
      
        0
      
      :
      
        0
      
      :root:/root:/bin/
      
        bash

operator:x:
      
      
        11
      
      :
      
        0
      
      :operator:/root:/sbin/nologin
    

命令选项:

  -i(ignore case):忽略字符大小写

  --color[=when]:高亮显示匹配字符,常用因此使用命令别名以便方便使用

      
        
          root@hao ~]#
        
      
      
        grep
      
       --color 
      
        '
      
      
        root
      
      
        '
      
       /etc/
      
        passwd
      
      
        

root:x:
      
      
        0
      
      :
      
        0
      
      :root:/root:/bin/
      
        bash

operator:x:
      
      
        11
      
      :
      
        0
      
      :operator:/root:/sbin/
      
        nologin


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
       alias 
      
        '
      
      
        grep=grep --color
      
      
        '
      
      
        

[root@hao 
      
      ~]# 
      
        grep
      
      
        '
      
      
        root
      
      
        '
      
       /etc/
      
        passwd
      
      
        

root:x:
      
      
        0
      
      :
      
        0
      
      :root:/root:/bin/
      
        bash

operator:x:
      
      
        11
      
      :
      
        0
      
      :operator:/root:/sbin/nologin
    

  -v:显示没有被模式匹配到的行

  -A n:表示匹配行后n行也显示

  -B n:表示匹配行前n行也显示

  -C n:表示匹配行前后n行都显示

  -o:只显示被模式匹配到的字符串

      
        
          [root@hao ~]#
        
      
      
        grep
      
       -o 
      
        '
      
      
        root
      
      
        '
      
       /etc/
      
        passwd
      
      
        

root

root

root

root
      
    

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

首先创建测试文件

      
        
          [root@hao ~]#
        
      
      
        cat
      
       /tmp/test.txt 
      
a
b
ab
aab
acb
adb
amnb
amnbmnbmnb

元字符:

  : 匹配任意单个字符

 

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

 

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

\ :匹配其前面的字符1次或零次

 \{m,n\} :匹配其前面的字符至少m次,至多n次。下面为a出现至少一次,之多三次之后是b

 ^ : 锚定行首,此字符后面的任意内容都必须出现在行首

$ :锚定行尾,此字符前面的任意内容必须出现在行尾

^$ :空白行

\< :其后面的任意字符必须作为单词首部出现

\> :其前面的任意字符必须作为单词的尾部出现

 

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

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

[:digit:] [:lower:][:upper:][:punct:][:space:][:alpha:][:alnum:]: 字符集合

以数字结尾的行:

\(\): 分组。如下代码匹配ab组合出现任意次。

  分组主要目的是为了后向引用,也就是被括号括起来的内容,在以后再次引用。\1代表引用前面出现第一个小括号的内容。

三、扩展正则表达式元字符  (grep -E=egrep)                                                     

元字符与上面相同的是

  • .
  • []
  • [^]
  • *
  • ?没有反斜线
  • {m,n}  没有反斜线
  • ^
  • ^$
  • \<
  • \>
  • ()没有反斜线

不同的是:

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

  |:或者or的意思。C|cat的意思是C或者cat。(C|c)at代表Cat或者cat。以至少一个空白字符开头的行:

《鸟哥的Linux私房菜》学习笔记(7)——grep及正则表达式


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论