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

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

1 最简单查找

grep "ERROR" /var/log/messages

这是精确查找方式,查找日志里所有包含 ERROR 的行。

2 忽略大小写

grep -i "error" /var/log/messages

这是模糊查找方式,-i参数可以忽略大小写。无论 errorErrorERROR 都能搜到。

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 报错。

掌握这些组合,你的日志排查速度绝对能提升一个档次。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐