12 个 grep 命令行组合,覆盖 90% 的生产场景
在 Linux/Unix 的日常运维、开发调试、日志分析中,grep 是几乎人手必备的工具。
今天整理了 12个常用且高频的 grep 命令行组合技巧,覆盖大部分实际生产场景。
复制
grep "ERROR" /var/log/messages1.
这是精确查找方式,查找日志里所有包含 ERROR 的行。
2. 忽略大小写复制
grep -i "error" /var/log/messages1.
这是模糊查找方式,-i参数可以忽略大小写。无论 error、Error、ERROR 都能搜到。
3. 显示行号 + 高亮复制
grep -ni --color=auto "ERROR" /data/tomcat/logs/catalina.out1.
-n带行号输出、带高亮,快速定位问题行。
复制
grep -c "ERROR" /var/log/messages1.
输出匹配总次数,而不是具体内容。
5. 排除干扰信息复制
grep "ERROR" /var/log/messages | grep -v "DEBUG"1.
先匹配 ERROR,再过滤掉 DEBUG 行。 在复杂日志里很常用。
6. 多关键字组合复制
grep -E "ERROR|WARN" /var/log/messages1.
同时查找 ERROR 或 WARN。
7. 抽取关键部分复制
grep -o "ERROR.*" /data/tomcat/logs/catalina.out1.
只输出匹配片段,比如提取 ERROR 开头的报错内容。
复制
grep -ir "https://www.liyb.com" ./logs1.
-r参数是遍历当前目录及目录下所有文件,在代码目录里递归搜索 https://www.liyb.com 标记。
9. 限定文件类型复制
grep -ir --include="*.log" "Logger" ./logs1.
只搜 .log 文件,避免无关文件干扰。
10. 查看上下文复制
grep -C 3 "ERROR" catalina.out1.
匹配结果前后各显示 3 行上下文。 组合:
-A N 只看后面 N 行-B N 只看前面 N 行11. 实时过滤日志复制
tail -f catalina.out | grep "ERROR"1.
生产环境实时盯报错。 组合增强版:
复制
tail -f catalina.out | grep -E "ERROR|WARN" | grep -v "DEBUG"1.
实时只看 ERROR/WARN,过滤掉 DEBUG,清爽很多。
12. 结合 find 精确搜索复制
find ./ -name "*.log" | xargs grep "OutOfMemory"1.
在所有 .log 文件里查找 OutOfMemory 报错。
掌握这些组合,你的日志排查速度绝对能提升一个档次。
THE END