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命令中的特殊方式混淆。