grep常用選項:
-E :開啟擴展(Extend)的正則表達式雌团。
-i :忽略大小寫(ignore case)尸疆。
-v :反過來(invert),只打印沒有匹配的雄坪,而匹配的反而不打印产还。
-n :顯示行號
-w :被匹配的文本只能是單詞匹厘,而不能是單詞中的某一部分,如文本中有l(wèi)iker脐区,而我搜尋的只是like愈诚,就可以使用-w選項來避免匹配liker
-c :顯示總共有多少行被匹配到了,而不是顯示被匹配到的內(nèi)容牛隅,注意如果同時使用-cv選項是顯示有多少行沒有被匹配到炕柔。
-o :只顯示被模式匹配到的字符串。
--color :將匹配到的內(nèi)容以顏色高亮顯示媒佣。
-A n:顯示匹配到的字符串所在的行及其后n行匕累,after
-B n:顯示匹配到的字符串所在的行及其前n行,before
-C n:顯示匹配到的字符串所在的行及其前后各n行默伍,context
-b欢嘿,--byte-offset 將可執(zhí)行文件binary當(dāng)作文本文件來搜索
-c衰琐,--count 僅顯示找到的行數(shù)
-i , --ignore-case 忽略大小寫
-n炼蹦,--line-number 顯示行號
-v羡宙, --revert-match 取反,列出沒有“關(guān)鍵詞”的行
-w, --word-regex 按單詞搜索掐隐,僅匹配這個字符串
-r 逐層便利目錄查看
--color 匹配到的行高亮顯示
--include 指定匹配的文件類型
--exinclude 過濾掉不需要匹配的文件類型
-A: 顯示匹配行及后面多少行, 如: -A3, 則表示顯示匹配行及后3行
-B: 顯示匹配行及前面多少行, 如: -B3, 則表示顯示匹配行及前3行
-C: 顯示匹配行前后多少行, 如: -C3, 則表示顯示批量行前后3行
1.根據(jù)匹配內(nèi)容過濾:grep "com.test.demo" a.log
2.在當(dāng)前目錄多個文件中搜索關(guān)鍵字starting:grep "starting" * --color
3.統(tǒng)計當(dāng)前目錄下所有文件中哪些文件包含關(guān)鍵字error:grep -"error" *
4.統(tǒng)計當(dāng)前目錄下對應(yīng)的文件中關(guān)鍵字error出現(xiàn)的行數(shù):grep -c "error" log_logcat@20221109_08-29-39-717-PC_807.log
5.搜索關(guān)鍵字時狗热,尤其時關(guān)鍵詞為英語時,可能存在的大小寫導(dǎo)致搜索遺漏:grep -i "starting" a.log
6.如果想顯示搜索結(jié)果所在的行號虑省,可通過-n 參數(shù):
grep -n "com.test.demo" a.log
7.在當(dāng)前目錄中查找匹配的文件名:ls -all | grep "20221109"
8.查看一段時間的日志:grep "11-09 08:2[6-8]" a.log --color
如下搜索打印時間在11-09 08:26到11-09 08:28之間的log信息
9.查找匹配a或者匹配o的行 的信息:grep -e a -e o test.txt
10.查看既包含a又包含o的行: grep a test.txt | grep o
查看多個文件匹配包含字母a的行:
grep a test.sh test.txt
匹配查詢內(nèi)容的前n行匿刮,后n行,前后n行
1.顯示匹配行前2行:
grep a test.txt -A2
2.顯示匹配行后2行:grep a test.txt -B2
- 顯示匹配行前后2行:
grep a test.txt -C2
匹配字符不區(qū)分大小寫:
grep -i a test.txt
匹配正則表達式(匹配小寫a-z之間的5個字符探颈,即包含5個小寫字母的字符):
grep -e '[a-z]{5}' test.txt
統(tǒng)計包含a的行數(shù):
grep -c a test.txt
16.遍歷當(dāng)前目錄及子目錄包含a的行: grep -rI a .
這里不加-I會出現(xiàn)上面內(nèi)存問題熟丸,這是因為grep -r查找的范圍會訪問所有這個目錄下的文件,包括二進制文件膝擂,加上-I參數(shù)不匹配查詢二進制文件虑啤,可以解決這個問題。
17.遍歷當(dāng)前目錄及所有子目錄架馋,查找所有.txt類型的文件中包含a的字符:
grep -rI a --include="*.txt" .
18.查找包含非“a”開頭的行:grep ^[^a] test.txt
grep可用于shell中。grep通過返回一個狀態(tài)值來說明搜索的狀態(tài)全闷,結(jié)果{0:成功,1:不成功,2:搜索的文件不存在}