1. 程式人生 > >GREP的用法

GREP的用法

grep grep是一種強大的文字搜尋工具,它能使用正則表示式搜尋文字,並把匹配的行打印出來。

 一般格式 grep [選項]  基本正則式 [檔案] 

選項:

-c 不輸出內容只統計匹配行數 grep -c "123" filename 相當於 grep "123" filename | wc -l 

-i 不區分大小寫 grep -i "ok" filename 匹配包含ok,Ok,oK,OK的所有行 

-h 查詢多檔案時不顯示檔名 grep -h "123" *.txt 不加

-h時會在每一行前顯示該行所在檔名 

-l 查詢多檔案是隻顯示包含匹配字元的檔名 

-n 查詢匹配行及行號 

-v 顯示不包含匹配文字的所有行 

-? 同時顯示匹配行上下的?行 如:grep -2 "123" filename同時顯示匹配行的上下2行

正則:

 ^ 錨定行的開始  如:'^grep'匹配所有以grep開頭的行。  

$ 錨定行的結束  如:'grep$'匹配所有以grep結尾的行。  

. 匹配一個非換行符的字元 如:'gr.p'匹配gr後接一個任意字元,然後是p。  

* 匹配零個或多個先前字元  如:'*grep'匹配所有一個或多個空格後緊跟grep的行。  

.*一起用代表任意字元。 

[] 匹配一個指定範圍內的字元 如'[Gg]rep'匹配Grep和grep。  

[^] 匹配一個不在指定範圍內的字元 如:

'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一個字母開頭,緊跟rep的行。 

\(..\)標記匹配字元 如'\(love\)',love被標記為1。  

\< 錨定單詞的開始 如:'\<grep'匹配包含以grep開頭的單詞的行。  

\> 錨定單詞的結束 如'grep\>'匹配包含以grep結尾的單詞的行。 

\b 單詞鎖定符 如: '\bgrep\b'只匹配grep。

特殊事項: 

1.引號的使用 

首先說明引號的作用,在shell中使用grep一般要打引號,例如:"grep" 這樣做,一是防止被誤解為shell命令,二是可以查詢多個單詞的字串。如,"aaa  bbb"。如果沒引號,將會把bbb誤認為檔案。 

一般在grep中輸入字串引數是打雙引號,如:$mystr="aaa";grep "$mystr" file,這樣$mystr會先被替換成aaa,執行操作是grep "aaa" file。而在單引號中,$mystr不被識別,因此,單引號一般用在正則表示式的匹配上,這樣可防止於grep中使用的模式與shell命令中的特殊方式混淆。