linux常用命令 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。
匹配零個或多個先前字符
如:'agrep'匹配所有一個或多個字符a后緊跟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命令中的特殊方 式混淆。
egrep是擴展的grep,支持基本正則和擴展正則,等同于grep -E。擴展集如下:
+ 匹配一個或多個先前的字符。如:'[a-z]+able',匹配一個或多個小寫字母后跟able的串。
a|b|c 匹配a或b或c。
如:grep|sed匹配grep或sed
( ) 分組符號
如:love(able|rs)匹配loveable或lovers。
本文由用戶 ccpp 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!