Ubuntu下,grep的用法

2021-09-07 14:15:04 字數 1515 閱讀 8640

grep(global search regular expression and print out the line)是一種強大的文字搜尋工具,

它能使用正規表示式搜尋文字,並把匹配的行列印出來。

unix的grep家族還包括egrep(ext)和fgrep(fixed)。

grep使用的正規表示式元字元:

元字元功能示例

匹配物件

^行首定位符

『^simaopig%』

匹配所有以simaopig開頭的行

$行尾定位符

『simaopig$』

匹配所有以simaopig結尾的行

.匹配任意乙個字元

『s.m』

匹配包含乙個s字元,後面跟乙個字元(隨意),再跟乙個m的行

*匹配0或多個前一字元

『s*m』

匹配包含零個或多個s字元,後面跟有乙個m字元的行

匹配一組字元中的任意乙個

『[ss]imaopig』

匹配simaopig,或者simaopig

[^]匹配不在指定字元組內的字元

『[^a-z]imaopig』

匹配不包含在a-z之間的字元後跟著imaopig的行,即所有aimaopig-zimaopig的行都不包含(有點繞)

\<

詞首定位符

『\匹配以simaopig為開頭的詞的行,simaopigabcd也是可以的

\>

詞尾定位符

『simaopig\>』

匹配以simaopig為結尾的詞的行,abcdsimaopig也是可以的

..標記匹配的字元

『simaopig

's blog』

標記暫存器裡的一段字元,該暫存器被記作1號暫存器。以後引用這段字元時,可以使用\1來重複該模式。9個標籤中最左邊的是第一號。例如,模式simaopig被儲存在1號暫存器裡,之後用\1來引用它。

x\或x\或x\

字元x的重複出現

『s\』,'s\』,'s\』

匹配連續出現5個s、至少5個s或5到10個s的行

grep的選項:

選項功能

-b在每一行前面加上其所在的塊號,根據上下文定位磁碟塊時可能會用到

-c顯示匹配到的行的數目,而不是顯示行的內容

-h不顯示檔名

-i比較字元時忽略大小寫的區別

-l(小寫的字母l)

只列出匹配行所在檔案的檔名(每個檔名只列一次),檔名之間用換行符分隔

-n在每一行前面加上它在檔案中的相對行號

-s無聲操作,即只顯示報錯資訊,用於檢查退出狀態

-v反向查詢,只顯示不匹配的行

-w把表示式作為詞來查詢,就好像它被\《和\>夾著那樣。只適用於grep(並非所有版本的grep都支援這一功能,譬如,sco unix就不支援)

更多參見:

grep 正規表示式及選項以及注意

grep用法詳解:grep與正規表示式

原文:

Ubuntu下,grep的用法

grep global search regular expression and print out the line 是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來。unix的grep家族還包括egrep ext 和fgrep fixed grep使用的正規表示式元字...

Ubuntu下,grep的用法

grep global search regular expression and print out the line 是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來。unix的grep家族還包括egrep ext 和fgrep fixed grep使用的正規表示式元字...

grep過濾的用法

grep的工作方式是這樣的,它在乙個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板後的所有字串被看作檔名。搜尋的結果被送到螢幕,不影響原檔案內容。grep可用於shell指令碼,因為grep通過返回乙個狀態值來說明搜尋的狀態,如果模板搜尋成功,則返回0,如果搜尋不成功,則返回1,如果...