linux-shell指令碼命令之grep

來源:互聯網
上載者:User

標籤:style   c   ext   color   a   strong   

[ grep簡介: ]

grep是用來過濾含有特定字元的行用法: grep ‘pattern‘ file例如: grep ‘bbb‘ aaa.txt --color                     # 從檔案aaa.txt中搜尋關鍵詞bbb, 並高亮顯示。

[ 正則元字元: ]

grep可以結合Regex使用, 下面介紹一些常用的Regex過濾字元的用法。
1.  ^表示行開頭     grep   ‘^bbb‘   aaa.txt  --color                 # 從檔案aaa.txt中尋找以bbb開頭的行。
2.  $表示行結尾     grep   ‘bbb$‘   aaa.txt  --color                # 從檔案aaa.txt中尋找以bbb結尾的行。
3.   .表示單個字元, 它可以匹配除分行符號之外的所有字元。     grep   ‘bbb...‘   aaa.txt  --color                # 從檔案aaa.txt中尋找bbb後面含有三個字元的行, ‘點‘可以匹配空格。
4.  * 表示它前面的那個字元可以出現任意次     grep   ‘bbb.*‘   aaa.txt  --color                # 從檔案aaa.txt中尋找bbb後面有任意個字元的行。
5.  + 表示它前面的那個字元至少要出現一次     grep  -E  ‘bbb.+‘ aaa.txt --color              # 從檔案aaa.txt中尋找bbb後面至少會出現一個字元的行。
6.  ? 表示它前面的那個字元可以有也可以沒有
     grep -E ‘bbbc?‘ aaa.txt --color               # 從檔案aaa.txt中尋找存在bbb或bbbc的行。     注意: grep不支援 + 、? 這兩個元字元, 如果想使用, 只能使用擴充的grep  (egrep 或 grep -E)
7.  [ ] 表示匹配一個字元, 出現在[ ]裡面的字元都是或的關係     grep  ‘^[Bb]bb‘  aaa.txt  --color             # 從檔案aaa.txt中尋找以Bbb或bbb開頭的行。     grep ‘[0-9]‘ aaa.txt --color                     # 從檔案aaa.txt中尋找含有數位行     grep -P ‘\d‘ aaa.txt --color                     # 從檔案aaa.txt中尋找含有數位行, -P表示使用perl的Regex          \d表示數字, \D表示非數字     \s表示空格或tab, \S表示不是空格或tab     \w表示任一字元(大小寫字母、數字、底線), \W表示不是字母、數字、底線。
     注意: ^ 出現在 [ ] 外面的話表示‘開頭‘, 如果出現在 [ ] 裡面的話表示‘否定‘     grep ‘^[^Bb]..‘ aaa.txt  --color               # 從檔案aaa.txt中尋找不是以B或b開頭, 而且後面還有兩個字元的行。
8.  \< 匹配單詞的開頭
     grep ‘\<Tom‘ aaa.txt --color                  # 從檔案aaa.txt中尋找單詞以Tom開頭的行。
9.  \> 匹配單詞的開頭
     grep ‘\>Tom‘ aaa.txt --color                 # 從檔案aaa.txt中尋找單詞以Tom結尾的行。
10.  匹配某個單詞, 而不是某個字串的一部分
     grep ‘\bTom\b‘ aaa.txt --color            # 從檔案aaa.txt中尋找含有單詞Tom的行, 如果是aTomb之類的忽略掉。
11.  用\(\)做標籤, 後面想引用就用\n (n是一個數字), \1表示第一個被引起來的
     grep ‘\(tom\)...\1‘ aaa.txt --color        # 從檔案aaa.txt中尋找tom, 且它的後面有三個字元, 然後還有一個tom的行. 如: tomxxxtom
12.  \{n\} 表示前面的字元要出現n次
     grep ‘tomx\{3\}‘ aaa.txt --color         # 從檔案aaa.txt中尋找tomx, x要出現3次, 如: tomxxx     grep ‘tomx\{3,\}‘ aaa.txt --color        # 從檔案aaa.txt中尋找tomx, x至少要出現三次, 如tomxxx 或 tomxxxx     grep ‘tomx\{3,4\}‘ aaa.txt --color      # 從檔案aaa.txt中尋找tomx, x出現3次或4次, 如tomxxx 或 tomxxxx
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.