往期回顧
linux三劍客之a(chǎn)wk
linux三劍客sed
Linux grep 命令用于查找文件里符合條件的字符串。
grep全稱是 Print,表示全局正則表達(dá)式顯示,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來
grep家族總共有三個(gè):grep,egrep,fgrep。
egrep等效于grep -E。fgrep等效于grep -F。
使用格式:grep [選項(xiàng)] "模式" [文件]
常用選項(xiàng):
-a 或 --text : 將二進(jìn)制文件作為文本文件處理,等效于'—-files=text'
-A 或 --after-= : 打印匹配行后的num行(num不包含匹配行)
-b 或 --byte- : 在每行輸出內(nèi)容的前面,打印字符偏移
-B 或 ---= : 打印匹配行前的num行(num不包含匹配行)
-c 或 --count : 輸出文件的匹配行數(shù),而非匹配內(nèi)容的常規(guī)輸出.與'-v'參數(shù)一起使用,可統(tǒng)計(jì)未匹配的行數(shù).
-C 或 --=或- : 打印匹配行前后各num行
-d 或 --= : 當(dāng)指定要查找的是目錄而非文件時(shí),必須使用這項(xiàng)參數(shù),否則grep指令將回報(bào)信息并停止動(dòng)作。
-e 或 --= : 指定字符串做為查找文件內(nèi)容的樣式。
-E 或 --- : 匹配規(guī)則為擴(kuò)展正則表達(dá)式(ERE)
-f 或 --file= : 指定規(guī)則文件,其內(nèi)容含有一個(gè)或多個(gè)規(guī)則樣式,讓grep查找符合規(guī)則條件的文件內(nèi)容linux查找關(guān)鍵字的行數(shù),格式為每行一個(gè)規(guī)則樣式。
-F 或 --fixed- : 將樣式視為固定字符串的列表。
-G 或 --basic- : 將樣式視為普通的表示法來使用。
-h 或 --no- : 在顯示符合樣式的那一行之前,不標(biāo)示該行所屬的文件名稱。
-H 或 --with- : 在顯示符合樣式的那一行之前,表示該行所屬的文件名稱。
-i 或 ---case : 忽略字符大小寫的差別。
-l 或 --file-with- : 僅輸入匹配文件名
-L 或 --files--match : 僅輸出未匹配的文件名
-n 或 --line- : 在顯示符合樣式的那一行之前,標(biāo)示出該行的列數(shù)編號(hào)。
-o 或 --only- : 打印行內(nèi)匹配的內(nèi)容(非空)
-q 或 --quiet或-- : 不做標(biāo)準(zhǔn)輸出.如果發(fā)現(xiàn)匹配項(xiàng),立即退出,即使中間出現(xiàn)錯(cuò)誤。
-r 或 -- : 此參數(shù)的效果和指定"-d "參數(shù)相同。
-s 或 --no- : 不顯示錯(cuò)誤信息。
-v 或 ---match : 顯示不包含匹配文本的所有行。
-V 或 -- : 顯示版本信息。
-w 或 --word- : 只顯示全字符合的列。
-x --line- : 只顯示全列符合的列。
-y : 此參數(shù)的效果和指定"-i"參數(shù)相同。
常用實(shí)例
原始文件
1.最常用的是搭配各種命令去使用,在前一個(gè)命令的結(jié)果中去搜索想要的字符串
find /etc/ -name |grep
ls /home | grep admin
rpm -qa | grep
yum list | grep
ps -ef | grep
cat test.conf | grep Host
2.數(shù)字結(jié)尾去匹配
3.數(shù)字結(jié)尾,數(shù)字前有一個(gè)或多個(gè)空格
4.匹配以某個(gè)字符串開頭的和以某個(gè)字符串結(jié)尾的
5.匹配ip
|egrep --color '(\\.){3}\'
6.行匹配:輸出匹配行的計(jì)數(shù)
7.使用拓展模式匹配
8.對(duì)匹配到的行排除不需要的
9.根據(jù)文件內(nèi)容遞歸查找目錄
grep "ERROR" *#在當(dāng)前目錄搜索帶"ERROR"行的文件
grep -r "ERROR" *#在當(dāng)前目錄及其子目錄下搜索"ERROR"行的文件
grep -l -r "ERROR" *#在當(dāng)前目錄及其子目錄下搜索'"ERROR"行的文件,但是不顯示匹配的行,只顯示匹配的文件
10.fgrep 查詢速度比grep命令快,但是不夠靈活:它只能找固定的文本linux查找關(guān)鍵字的行數(shù),而不是規(guī)則表達(dá)式。