1. 程式人生 > >正則表示式grep, egrep, fgrep

正則表示式grep, egrep, fgrep

.*\1 : 匹配第一個括號所匹配的內容

2. egrep : 等同於 grep -E 

  egrep [options] PATTERN FILE...

  PATTERN由元字元和和普通字元組成

  -i : --ignore-case , 忽略大小寫

  -o : --only-matching, 只顯示所匹配到的字元,二不是整行

  -n : --line-number, 輸出所匹配行的行號

  -v : --invert-match, 顯示除匹配行外的所有行

  -A NUM : --after-context, 顯示匹配行後NUM行

  -B NUM: --before-context,顯示匹配行強NUM行

  -C NUM: --context,顯示匹配行前、後NUM行

  PATTERN由元字元和和普通字元組成

  元字元

    匹配字元:

      . : 匹配任意單個字元

      [],[^] : 匹配指定的單個字元

        [0-9], [[:digit:]] : 匹配單個數字

        [[:alpha:]] : 匹配單個大、小寫字母

        [[:lower:]] : 匹配單個小寫字母

        [[:upper:]] : 匹配單個大寫字母

        [[:alnum:]] : 匹配單個數字或字母

        [[:bank:]] : 匹配單個空白字元

        [[:punct:]] : 匹配標點符號

        [[:contrl:]] : 匹配當控制字元

        [[:xdigit:]] : 匹配單個16進位制數

    匹配次數:用來指定前面的字元出現的次數

      * : 任意次數,包括0次

      + : 至少一次

      ? : 0次或1次,前面的字元可有,可無

      {m}, {0,n}, {m,n}, {m,} : 分別指m次,最多n次,m-n次,最少m次

      .* : 任意長度,任意字元

    位置錨定:

      ^ : 行首錨定,模式左側

      $ : 行尾錨定,模式右側

      \< : 詞首錨定,單詞模式左側,單詞指由數字和字母構成的字串

      \> : 詞尾錨定,單詞右側

        ^PATTERN$, 匹配整行只有指定的模式

        ^$ : 空行

        ^[[:blank:]]$ : 整行無可見字元

        \<word\> : 匹配整個單詞

    分組

      () 將任意個字元用括號括起來做一個整體進行匹配

      後向引用:應用前面分組括號所匹配的內容,非模式本身, \1,\2 ...

        (th).*\1 : 匹配第一個括號所匹配的內容

3.fgrep : 不支援正則表示式, 僅匹配指定的字串

  fgrep [optings] PATERN File...