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,如果...