12 個(gè) grep 命令行組合,覆蓋 90% 的生產(chǎn)場(chǎng)景
在 Linux/Unix 的日常運(yùn)維、開(kāi)發(fā)調(diào)試、日志分析中,grep 是幾乎人手必備的工具。
今天整理了 12個(gè)常用且高頻的 grep 命令行組合技巧,覆蓋大部分實(shí)際生產(chǎn)場(chǎng)景。

1. 最簡(jiǎn)單查找
grep "ERROR" /var/log/messages這是精確查找方式,查找日志里所有包含 ERROR 的行。
2. 忽略大小寫(xiě)
grep -i "error" /var/log/messages這是模糊查找方式,-i參數(shù)可以忽略大小寫(xiě)。無(wú)論 error、Error、ERROR 都能搜到。
3. 顯示行號(hào) + 高亮
grep -ni --color=auto "ERROR" /data/tomcat/logs/catalina.out-n帶行號(hào)輸出、帶高亮,快速定位問(wèn)題行。

4. 統(tǒng)計(jì)關(guān)鍵字出現(xiàn)次數(shù)
grep -c "ERROR" /var/log/messages輸出匹配總次數(shù),而不是具體內(nèi)容。
5. 排除干擾信息
grep "ERROR" /var/log/messages | grep -v "DEBUG"先匹配 ERROR,再過(guò)濾掉 DEBUG 行。 在復(fù)雜日志里很常用。
6. 多關(guān)鍵字組合
grep -E "ERROR|WARN" /var/log/messages同時(shí)查找 ERROR 或 WARN。
7. 抽取關(guān)鍵部分
grep -o "ERROR.*"  /data/tomcat/logs/catalina.out只輸出匹配片段,比如提取 ERROR 開(kāi)頭的報(bào)錯(cuò)內(nèi)容。

8. 搜索整個(gè)目錄
grep -ir "https://www.liyb.com" ./logs-r參數(shù)是遍歷當(dāng)前目錄及目錄下所有文件,在代碼目錄里遞歸搜索 https://www.liyb.com 標(biāo)記。
9. 限定文件類型
grep -ir --include="*.log" "Logger" ./logs只搜 .log 文件,避免無(wú)關(guān)文件干擾。
10. 查看上下文
grep -C 3 "ERROR" catalina.out匹配結(jié)果前后各顯示 3 行上下文。 組合:
- -A N 只看后面 N 行
 - -B N 只看前面 N 行
 
11. 實(shí)時(shí)過(guò)濾日志
tail -f catalina.out | grep "ERROR"生產(chǎn)環(huán)境實(shí)時(shí)盯報(bào)錯(cuò)。 組合增強(qiáng)版:
tail -f catalina.out | grep -E "ERROR|WARN" | grep -v "DEBUG"實(shí)時(shí)只看 ERROR/WARN,過(guò)濾掉 DEBUG,清爽很多。
12. 結(jié)合 find 精確搜索
find ./ -name "*.log" | xargs grep "OutOfMemory"在所有 .log 文件里查找 OutOfMemory 報(bào)錯(cuò)。
掌握這些組合,你的日志排查速度絕對(duì)能提升一個(gè)檔次。















 
 
 







 
 
 
 