12 个 grep 命令行组合,覆盖 90% 的生产场景
发布时间:2024-02-21 10:47:27
在 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 行上下文。
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 报错。
上一篇: 人工智能分析物联网数据的机器学习算法
下一篇: 云服务器的基本功能