核心武器:grep
灵魂奥义:-A、-B、-C、-H、-i、-c
常用 grep 参数对照表
| 参数 | 说明 |
|---|---|
| -A N | 显示匹配行之后 N 行 |
| -B N | 显示匹配行之前 N 行 |
| -C N | 显示匹配行上下文 N 行 |
| -H | 打印文件名 |
| -i | 忽略大小写 |
| -r | 递归搜索子目录 |
| -c | 统计匹配数量 |
场景一:查异常堆栈,绝不能只看一行!
grep -A 50 'java.lang.NullPointerException' info.log
-A 50 的意思是匹配到的行+后面 50 行,堆栈信息一览无余。
grep -A 50 "java.lang.NullPointerException" a.log | less
在 less 里你可以:
- ↑↓ / PageUp PageDown 滚动
- G 直达末尾
- /Exception 继续搜索
- q 退出
场景二:实时看新日志
tail -f a.log | grep -A 50 'java.lang.NullPointerException'
报错一来,堆栈直接推到你面前。
大小写怕拼错?加 -i 忽略大小写。想停?Ctrl + C。
场景三:翻历史日志 & 压缩日志
线上日志常常被分片+压缩,变成 a.log.2025-07-02.gz。这时候别傻傻解压。 (-H 会打印文件名,帮你知道异常在哪一天爆的。)
查所有 .log 文件:grep -H -A 50 "java.lang.NullPointerException" *.log
查 .gz 文件:zgrep -H -A 50 "java.lang.NullPointerException" *.gz
场景四:统计异常数量
你想知道异常是偶发还是疯狂刷屏?
grep -c "java.lang.NullPointerException" *.log
很快就能知道是 “今天抽风一次”,还是 “系统已经炸锅”。
作者:admin 创建时间:2025-08-21 14:11
最后编辑:admin 更新时间:2025-09-19 10:08
最后编辑:admin 更新时间:2025-09-19 10:08