Linux系統(tǒng)中的grep命令是一種功能強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來(lái)。grep全稱是Global Regular Expression Print,表示全局正則表達(dá)式版本,它的使用權(quán)限是所有用戶。
1、語(yǔ)法參數(shù)
grep [options]
[options]主要參數(shù):
-c:只輸出匹配行的計(jì)數(shù)。
-i:表示不區(qū)分大小寫。
-h:查詢多文件時(shí)不顯示文件名。
-l:查詢多文件時(shí)只輸出包含匹配字符的文件名。
-n:顯示匹配行及行號(hào)。
-s:不顯示不存在或無(wú)匹配文本的錯(cuò)誤信息。
-v:顯示不包含匹配文本的所有行,表示反向查找。
–color=auto :可以將找到的關(guān)鍵詞部分加上顏色的顯示
2、實(shí)例:
1)查找包含“png”的行
[linuxmi@linux:~/linuxmi迷]$ grep -n ‘png’ linuxmi.py
2)查找不包含“png”的行
[linuxmi@linux:~/linuxmi迷]$ grep -vn ‘png’ linuxmi.py
3)查詢na前面不是v的字符串
[linuxmi@linux:~/linuxmi迷]$ grep -n ‘[^v]na’ linuxmi.py
4)查詢na前面不是小寫字母的字符串
[linuxmi@linux:~/linuxmi迷]$ grep -n ‘[^a-z]na’ linuxmi.py
5)^匹配以某個(gè)字符開頭的行。查詢以ba開頭的字符串
[linuxmi@linux:~/linuxmi迷]$ grep -n ‘^ba’ linuxmi.py
6)[^]匹配未包含的一個(gè)任意字符。查詢不以字母開頭的字符串
[linuxmi@linux:~/linuxmi迷]$ grep -n ‘^[^a-zA-Z]’ linuxmi.py
7)$匹配以某個(gè)字符結(jié)尾的行。查詢以:結(jié)尾的字符串
[linuxmi@linux:~/linuxmi迷]$ grep -n ‘.$’ linuxmi.py
//其中小數(shù)點(diǎn)“.”具有特殊意義,所以需要使用轉(zhuǎn)義字符“”將具有特殊意義的字符轉(zhuǎn)化為普通字符
8)“.”匹配除rn外的任意一個(gè)字符。查詢l與k之間包含兩個(gè)字符的行
[linuxmi@linux:~/linuxmi迷]$ grep -n ‘l..k’ linuxmi.py
9)查詢包含連續(xù)e字母的行
[linuxmi@linux:~/linuxmi迷]$ grep -n ‘eee*’ linuxmi.py
//“*”表示的是重復(fù)零個(gè)或多個(gè)前面的單字符
10)查詢以l開頭以e結(jié)尾中間至少包含一個(gè)x的行
[linuxmi@linux:~/linuxmi迷]$ grep -n ‘lxx*e’ linuxmi.py
11)查詢以l開頭k結(jié)尾,中間的字符可有可無(wú)的行
[linuxmi@linux:~/linuxmi迷]$ grep -n ‘l.*k’ linuxmi.py
12){n}匹配確定的n次。查詢包含兩個(gè)e的行
[linuxmi@linux:~/linuxmi迷]$ grep -n ‘e{2}’ linuxmi.py
//“{}”是特殊字符需要用“”轉(zhuǎn)義
更多Linux命令相關(guān)信息見Linux命令大全 專題頁(yè)面 http://www.haoyitu.cn/topicnews.aspx?tid=16