命令示例
grep -A 50 "Exception" a.log
搜索包含 "Exception" 的行,并顯示其之后(After)的50行內(nèi)容。
grep -A 50 "Exception" a.log | less
同上,但通過(guò) less進(jìn)行分頁(yè)顯示,便于瀏覽長(zhǎng)文本。
tail -f a.log | grep -A 50 "Exception"
實(shí)時(shí)監(jiān)控日志文件的新增內(nèi)容,并打印匹配行及其后50行。
grep -H -A 50 "Exception" *.log
在當(dāng)前目錄所有 .log文件中搜索。-H 參數(shù)會(huì)顯示匹配到的文件名??缥募阉?,快速定位問(wèn)題發(fā)生在哪個(gè)日志文件里。
zgrep -H -A 50 "Exception" *.gz
在所有的 .gz壓縮文件中搜索,功能和 grep相同。搜索壓縮過(guò)的歷史日志,無(wú)需手動(dòng)解壓,直接查詢。
grep -c "Exception" a.log
統(tǒng)計(jì)文件中關(guān)鍵詞出現(xiàn)的次數(shù)(Count),只顯示數(shù)字結(jié)果??焖俳y(tǒng)計(jì)異常頻率,判斷是偶發(fā)問(wèn)題還是頻發(fā)問(wèn)題。
grep -B 10 "Exception" a.log
顯示匹配行之前(Before)的10行內(nèi)容。查看異常發(fā)生前的日志上下文,幫助分析導(dǎo)致異常的操作。
grep -C 5 "Exception" a.log
顯示匹配行上下(Context)各5行的內(nèi)容。同時(shí)查看異常發(fā)生前和后的日志,獲取更完整的上下文信息。
grep -i "nullpointer" a.log
-i 參數(shù)使搜索忽略大小寫。當(dāng)不確定關(guān)鍵詞大小寫時(shí),擴(kuò)大搜索范圍,避免遺漏。
核心參數(shù)解釋
-A N After 顯示匹配行之后的 N 行
-B N Before 顯示匹配行之前的 N 行
-C N Context 顯示匹配行上下各 N 行
-c Count 統(tǒng)計(jì)匹配行的次數(shù)
-i Ignore case 忽略大小寫
-H With filename 顯示匹配的文件名(在多文件搜索時(shí)有用)
-r Recursive 遞歸搜索目錄下的所有文件
常用工具組合
tail -f 實(shí)時(shí)跟蹤日志文件的新增內(nèi)容。
| grep 將前一個(gè)命令的輸出作為輸入進(jìn)行篩選。
| less 將輸出轉(zhuǎn)換為可分頁(yè)、可搜索的瀏覽模式。
zgrep 專門用于在 .gz壓縮文件中進(jìn)行搜索,用法同 grep。