12个grep命令行组合,覆盖90%的生产场景
本文整理了12个实用的grep命令组合,适用于Linux/Unix的运维和开发场景。包括基础查找、忽略大小写(-i)、显示行号高亮(-n)、统计次数(-c)、排除干扰(-v)、多关键字(|)、抽取内容(-o)、目录递归(-r)、限定文件类型(--include)、查看上下文(-C)、实时日志过滤(tail -f)以及与find结合使用等技巧。这些组合能显著提升日志分析效率,快速定位问题。
·
分享一下grep常用组合。在 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
报错。
掌握这些组合,你的日志排查速度绝对能提升一个档次。
更多推荐
所有评论(0)