語法:grep 選項(xiàng) ‘word' filename
-c:打印符合要求的行數(shù)
-i:不區(qū)分大小寫
-n:在輸出符合要求的行的同時(shí)顯示行號(hào)
-v:打印不符合要求的行
-A:后跟一個(gè)數(shù)字n,表示打印符合要求的行以及下面n行
-B:后跟一個(gè)數(shù)字n,表示打印符合要求的行以及上面n行
-C:后跟一個(gè)數(shù)字n,表示打印符合要求的行以及上下各n行
-r:會(huì)把目錄下所有的文件全部遍歷
--color:把匹配到的關(guān)鍵詞用紅色標(biāo)示
例子:
過濾出帶有某個(gè)關(guān)鍵詞的行并輸出行號(hào)
grep -n ‘root' 1.txt
過濾出不帶有某個(gè)關(guān)鍵詞的行并輸出行號(hào)
grep -nv ‘root' 1.txt
過濾出所有包含數(shù)字的行
grep ‘[0-9]‘ 1.txt
過濾出所有不包含數(shù)字的行
grep -v ‘[0-9]‘ 1.txt
去除所有以#開頭的行
grep -v ‘^#‘ 1.txt
去除所有空行和以#開頭的行
grep -v ‘^$‘ 1.txt|grep -v ‘^#‘
過濾出以英文字母開頭的行
grep ‘^[a-zA-Z]‘ 1.txt
過濾出以非數(shù)字開頭的行
grep -v ‘^[0-9]‘ 1.txt或者grep ‘^[^0-9]‘ 1.txt
過濾任意一個(gè)或多個(gè)字符
grep ‘r.o‘ 1.txt;grep ‘rt‘ 1.txt ;grep ‘r.t‘ 1.txt
過濾出包含root的行以及下面一行
grep -A1 ‘root‘ 1.txt
過濾出包含root的行以及上面一行
grep -B1 ‘root‘ 1.txt
指定過濾字符次數(shù)
grep ‘o{2}‘ 1.txt
把一個(gè)目錄下,過濾所有.php文檔中含有eval的行
grep -r --include=".php" ‘eval‘ /data/
過濾兩個(gè)或多個(gè)關(guān)鍵詞
grep -E ‘123|abc‘ filename #找出文件中包含123或者abc的行
或者egrep ‘123|abc‘ filename
或者awk ‘/123|abc/‘ filename
egrep=grep -E
匹配1個(gè)或者1個(gè)以上+前面的字符
egrep ‘o+‘ 1.txt
匹配0個(gè)或者1個(gè)?前面的字符
egrep ‘o?‘ 1.txt
匹配roo或者匹配body
egrep ‘roo|body‘ 1.txt
用括號(hào)表示一個(gè)整體,下面例子會(huì)匹配roo或者ato
egrep ‘r(oo)|(at)o‘ 1.txt
匹配1個(gè)或者多個(gè)oo
egrep ‘(oo)+‘ 1.txt
.:表示任意一個(gè)字符
:表示0個(gè)或多個(gè)前面的字符
+:表示1個(gè)或多個(gè)+前面的字符
?:表示0個(gè)或1個(gè)?前面的字符
.*:表示任意個(gè)任意字符(包含空行)
注意:+和?grep不支持,egrep才支持。
總結(jié)
以上所述是小編給大家介紹的正則表達(dá)式grep用法詳解,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- shell腳本之正則表達(dá)式、grep、sed、awk
- linux系統(tǒng)用戶管理與grep正則表達(dá)式示例教程
- 淺談Linux grep與正則表達(dá)式
- bash 中用于grep的正則表達(dá)式
- linux grep正則表達(dá)式與grep用法詳解
- Shell正則表達(dá)式之grep、sed、awk實(shí)操筆記
- grep用法詳解 grep與正則表達(dá)式
- linux grep與正則表達(dá)式使用介紹