grep命令的用法與正則表達式

1. 什麼是grep

  • grep它能使用特定模式匹配(包括正則表達式)搜索文本,並默認輸出匹配行。
    grep命令的常用格式爲:grep [選項] ”模式“ [文件]
    grep家族總共有三個:grep,egrep,fgrep。

2.常用選項

  • -v:反過來(invert),只打印沒有匹配的,而匹配的反而不打印。
  • -i:忽略大小寫
  • -q:不向標準輸出寫任何東西。如果找到任何匹配的內容就立即以狀態值 0 退出,即使檢測到了錯誤.

  • -E:將模式 PATTERN 作爲一個擴展的正則表達式來解釋 。

  • -R:遞歸地讀每一目錄下的所有文件。

3.正則表達式與grep的使用

  • 正則表達式的概念:
    是用於描述一組字符串特徵的模式,用來匹配特定的字符串。通過 特殊字符+普通字符來進行模式描述,從而達到文本匹配目的工具。
  • 正則表達式的基本要素
    字符類
    數量限定符
    位置限定符
    特殊符號
  • 字符類:
    -“.”:表示匹配任意一個字符
    這裏寫圖片描述
    - []:表示匹配括號內的任意一個字符
    這裏寫圖片描述
    - “-”:表示在括號的的範圍
    這裏寫圖片描述
    -“^”:位於[ ]括號內的開頭,匹配出括號中的字符以外的任意一個字符
    這裏寫圖片描述
    -“[[:digit:]]:表示匹配任意一個數字
    這裏寫圖片描述
    -“[[:alpha:]]”:表示匹配任意一個字母
    這裏寫圖片描述

  • 數量限定符:
    - “?”:緊跟在它前面的單元匹配0次或一次
    - “+”:緊跟在它前面的單元匹配一次或多次
    - “*”:緊跟在它前面的但願匹配0次或多次
    - “{N}”:緊跟在它前面的單元精確匹配N次
    - “{N,}”:緊跟在它前面的單元應匹配至少N次
    - ”{,M}”:緊跟在它前面的單元應匹配最多N次
    - “{N,M}”:緊跟在它前面的單元應至少匹配N次,至多匹配M次。
    這裏寫圖片描述

  • 位置限定符:
    - “^”:匹配行首的位置
    -“$”:匹配行末的位置
    -“\<”:匹配單詞開頭的位置
    -“>”:匹配單詞結尾的位置
    -“\b”:匹配單詞開頭或結尾的位置
    -“\B”:匹配非單詞開頭或結尾的位置
    這裏寫圖片描述
  • 特殊符號:
    -“\”:轉義字符,普通字符轉義爲特殊字符,特殊字符轉義爲普通字符。
    -“()”:將正則表達式的一部分括起來組成一個單元,可以對整個單元使用數量限定符。
    -“|”:連接兩個子表達式,表示或的關係
    這裏寫圖片描述
  • 其他字符
    • \d: [0-9] 數字字符
  • \D: [^0-9] 非數字字符
  • \w :[a-zA-Z0-9_] 數字字母下劃線
  • \W :[^\w] 非數字字母下劃線
    這裏寫圖片描述
  • \s :[_\r\t\n\f] 表格,換行等空白區域
  • \S :[^\s] 非空白區域
    這裏寫圖片描述
    看上邊發現-E與-P所得的結果不同,看到下面的分類即可明白。
  • 正則表達式分類
    基本的正則表達式(grep 指令後不跟任何參數,則表示要使用 ”BREs“ )。
    擴展的正則表達式(grep 指令後跟 ”-E” 參數,則表示要使用 “EREs“ )。
    Perl的正則表達式(grep 指令後跟 “-P” 參數,則表示要使用 “PREs”)。
    這裏寫圖片描述

練習:
1.過濾出手機號碼:
這裏寫圖片描述

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