12 個 grep 命令行組合,覆蓋 90% 的生產場景
在 Linux/Unix 的日常運維、開發調試、日志分析中,grep 是幾乎人手必備的工具。
今天整理了 12個常用且高頻的 grep 命令行組合技巧,覆蓋大部分實際生產場景。

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

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

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

























