next up previous contents
Next: 資料流重導向 Up: 正規表示法與管線處理 Previous: 基礎正規表示法   Contents

延伸正規表示法

  • grep 支援的是基礎型的正規表示法,延伸正規表示法 egrep 是 grep -E 的命令別名。
  • 延伸型正規表示法之特殊符號
    RE 字符         意義與範例
      +      重複『一個或一個以上』的前一個 RE 字符
             範例:egrep -n 'go+d' re.txt
             搜尋 (god) (good) (goood)... 等等的字串。
      ?     『零個或一個』的前一個 RE 字符
             範例:egrep -n 'go?d' re.txt
             搜尋 (gd) (god) 這兩個字串。
      |      用或( or )的方式找出數個字串
             範例:egrep -n 'gd|good|dog' re.txt
             搜尋 gd 、 good 或 dog 這三個字串。 
     ( )     找出『群組』字串或作為『多個重複群組』的判別
             範例:egrep -n 'g(la|oo)d' 
             搜尋 (glad) 或 (good) 這兩個字串。
             範例:egrep -n 'A(xyz)+C' re.txt
             找開頭是 A 結尾是 C ,中間有一個以上的 "xyz" 字串。
    
  • 例題:去除空白行與行首為 # 的行列
    #基礎型的正規表示法需要使用到管線命令來搜尋兩次 
    grep -v '^$' re.txt | grep -v '^#'
    #支援延伸型正規表示法可以簡化為:
    egrep -v '^$|^#' re.txt
    
  • 例題:以延伸型正規表示法顯示行號方式,找出目錄 /etc 以下符合下列條件之檔案。
    1. 包含 boot 或 root 字串的檔案。
    2. 包含 b 開頭 t 結尾且中間 0 個或 1 個 o 之字串的檔案。
    3. b 開頭 t 結尾且中間 1 個 o 以上之字串的檔案。
練習題

2015-04-13