12 个 grep 命令行组合,覆盖 90% 的生产场景

在 Linux/Unix 的日常运维、开发调试、日志分析中,grep 是几乎人手必备的工具。

今天整理了 12个常用且高频的 grep 命令行组合技巧,覆盖大部分实际生产场景。

1. 最简单查找
复制
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带行号输出、带高亮,快速定位问题行。

4. 统计关键字出现次数
复制
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 开头的报错内容。

8. 搜索整个目录
复制
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