grep egrep fgrep的使用

grep命令

 

    通過搜索與PATTERN匹配的字段,在FILE文件中查找到匹配的字段並顯示出來。

    格式:grep [options] PATTERN [FILE...]

    

options

  -A num:文本後幾行

        # grep -A 3 "root" /etc/passwd    
        root:x:0:0:root:/root:/bin/bash
        bin:x:1:1:bin:/bin:/sbin/nologin
        daemon:x:2:2:daemon:/sbin:/sbin/nologin
        adm:x:3:4:adm:/var/adm:/sbin/nologin

  -B #:模式之前的#行,也顯示出來

  -C #:模式前後#行,都顯示出來

  --colour=[顏色] 顯示匹配的字體顏色

        # grep --colour=auto "root" /etc/passwd

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

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

  -c,--count :顯示匹配行的總數

        # grep -c "root" passwd

        2

  -E:作爲egrep匹配處理

  -e:作爲包含以-爲開頭行,有效

  -f:從文件中的每一行作爲匹配模式來獲取

  -i:忽略匹配模式的大小寫

        # grep -i "root" passwd

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

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

        ROOT:x:0:0:Root:/Root:/bin/bash

  -n:在輸出行前面標記上行號

        # grep -n "root" passwd

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

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

  -o:只顯示於模式匹配的部分

        # grep -o "root" passwd

        root

        root

        root

        root

  -v:不取與之匹配的模式。


    在grep中,元字符 ?, +, {, |, (, 和 ) 喪失了它們的特殊意義;作爲替代,使用加反斜槓 \?, \+, \{, \|, \(, 和 \) 

         \?:0次或1次

         \+:至少一次

         \{\}:指定次數

         \| :選擇

         \(\):分組

           例如: # grep "\(l..e\).*\1" like

         .:任意單個字符

        \<錨定詞首:

        >\錨定詞尾:

        \<PATTEN>\:錨定一個模式,如單詞,一個數


egrep命令:grep -E 與之類同

    擴展正則表達式

        元字符部分:

          . :任意單個字符

          ? :最多匹配一次

          *:零次或更多次

          +:一次或更多次

        {n}:精確匹配n次

        {n,}:n次或更多次,至少n次

        {n,m}:至少n次,但不多於m次

          a|b,a或者b二選一

          \<錨定詞首

          >\錨定詞尾

         ()表示分組,().*\1前面的組再次出現後面


    模式匹配的特殊寫法部分,以下寫法均代表一個字符,在grep和egrep中可以通用:

        [:lower:]:小寫字母

        [:upper:]:大寫 字母

        [:digit:]:數字

        [:alpha:]:大小寫字母

        [:alnum:]:大小寫字母和數字

        [:space:]:空格

        [:punct:]:標點符號


fgrep命令:grep -F與之類同 

    快速正則表達式

     grep把模式當做正則表達式看,fgrep把模式當做固定字符串看,所以後者要比前者速度快,當然同

時後者的搜索功能要弱於前者。

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章