grep是Linux下處理文本的命令,與sed和awk合稱Linux三劍客。grep在man手冊中的解釋為打印匹配到的模式,grep真正強大之處在于支持正則表達式,下面介紹grep常用的選項。
–color=auto: 對匹配到的文本著色顯示
此選項在centos7中默認別名并且添加到配置文件中,centos6中可以使用別名添加到~/.bashrc中,添加別名的方法為alias grep=”grep –color=auto”
-v: 顯示不被pattern匹配到的行
此選項可簡單理解為取反,但需注意的是”取反”是以行為單位的。在同一行”取反”一般不會有效果。
-i: 忽略字符大小寫
在Linux中是嚴格區分大小寫的,此選項可以實現同時匹配相同字符串的大小寫,例如grep -i “ROOT” /etc/passwd,結果會把passwd文件中包含”ROOT”和”root”的行都顯示出來。
-n:顯示匹配的行號
會把顯示的文件內容進行編上行號,而不是修改文件的內容。
-c: 統計匹配的行數
此選項的結果為一個數字,表示匹配到的行數,而不顯示具體是哪些行被匹配到。
-o: 僅顯示匹配到的字符串
此選項只顯示匹配到的部分,而且字體是帶有顏色的。
-q: 靜默模式,不輸出任何信息
匹配到還是匹配不到都不顯示,只在后臺反應,使用$?來從返回值判斷命令是否正確執行
-A#: after, 后#行
顯示匹配到行的后#行,不包括匹配到的行。
-B#: before, 前#行
顯示匹配到行的前#行,不包括匹配到的行。
-C#:context, 前后各#行
顯示匹配到行的前后各#行,不包括匹配到的行。
-e:實現多個選項間的邏輯or關系
grep –e root ?–e bash /etc/passwd包含root或者bash的行。
-w:匹配整個單詞
grep默認字母、數字、下劃線為單詞的一部分,不予匹配。
例如:
echo xabcy|grep -w abc(不匹配)
echo “x abc y”|grep -w abc(匹配)
echo “x,abc,y”|grep -w abc(匹配)
echo “x2abc3y”|grep -w abc(不匹配)
echo “x_abc_y”|grep -w abc(不匹配)
echo “x-abc-y”|grep -w abc(匹配)
-E:使用ERE(使用擴展的正則表達式)
-F:相當于fgrep,不支持正則表達式
-f 把過濾的類型添加到文件中進行匹配
例如新建p.txt文件,添加root bash,使用grep -f p.txt /etc/passwd進行匹配文件內的字符,相當于-e選項。
以上就是grep的常用選項。如還想對grep進行更深入的了解可以使用man grep進行查看。
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95397