grep命令的使用

來源:互聯網
上載者:User

一、簡介(Global Regular Expression Print)

  grep 是一種強大的文本搜尋工具,它能使用Regex搜尋文本,並把匹配的行列印到標準輸出。如果指定了多個檔案,會在每一行前面顯示檔案名稱。並不影響原檔案內容。

grep可用於shell指令碼,因為grep通過返回一個狀態值來說明搜尋的狀態,如果模板搜尋成功,則返回0,如果搜尋不成功,則返回1,如果搜尋的檔案不存在,則返回2。我們利用這些傳回值就可進行一些自動化的文本處理工作。


二、格式

grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

 

三、grep Regex元字元集

1.基本集其實跟 sed 差不多,隨便列一下吧:

^   $   .   *    []   [^]   \(..\)   \<   \>   x\{m,n\}   x\{m\}   x\{m,\}
\w #匹配文字和數字字元,也就是[A-Za-z0-9]
\W #\w的反置形式,匹配一個或多個非單詞字元,如點號句號等
\b #單詞鎖定符,如: ‘\bgrepb\’只匹配grep

2.用於 egrep 和 grep -E 的元字元擴充集

+           #匹配前一個字元一次或多次
?           #匹配前一個字元0次或1次  
a|b|c          #可選模式,匹配a或b或c,如:love(able|rs)匹配loveable或lovers
()          #分組符號,如:(ov)+,匹配一個或多個ov 
x{m},x{m,},x{m,n}  #作用同x\{m\},x\{m,\},x\{m,n\}

3.POSIX字元類

為了在不同國家的字元編碼中保持一至,POSIX增加了特殊的字元類,如[:alnum:]是[A-Za-z0-9]的另一個寫法。

[:alunm:]    [:alpha:]    [:digit:]    [:space:]    [:upper:]     #等等

 

四、grep 常用命令選項:

-v                                #反檢索,只顯示不匹配的行
-l #列印匹配模板的檔案清單
-L #列印不匹配模板的檔案清單
-n #在匹配的行前面列印行號
-2 #grep -2 pattern filename 同時顯示匹配行的上下2行
-c #只列印匹配的行數,不顯示匹配的內容
-f #從檔案中提模數板。空檔案中包含0個模板,什麼都不匹配
-h #當搜尋多個檔案時,不顯示匹配檔案名稱首碼
-i #忽略大小寫差別
-w #如果被\<和\>引用,就把運算式做為一個單詞搜尋

 

五、使用舉例

測試檔案:

cat filename
f
f3
f33
f333
f3333
f1
f31
f2
f32
f323
f

1.顯示包含 33 的行

grep '33' filename
f33
f333
f3333

2.至少包含三個數位行

grep '[[:digit:]]\{3,\}' filename
f333
f3333
f323

3.匹配 3 一次以上的行:

grep 'f3\{1,\}' filename

f3
f33
f333
f3333
f31
f32
f323

4.匹配 f 後跟一個以上 3 的行

grep 'f3\{1,\}\>' filename
f3
f33
f333
f3333

 5.匹配 f 後跟偶數個 3 

grep -E 'f(33)+\>' filename
f33
f3333

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.