有时候我们需要查看异常发生前的上下文,这时可以使用-B
(Before)参数:
# 查找NullPointerException,并显示前面5行和后面50行
grep -B 5 -A 50 "java.lang.NullPointerException" a.log
-C
(Context)参数可以同时显示匹配行前后N行内容:
# 显示匹配行前后各10行
grep -C 10 "java.lang.NullPointerException" a.log
# 实时监控并显示异常前后各20行
tail -f a.log | grep -C 20 "java.lang.NullPointerException"
# 查找压缩日志中的异常及前后15行
zgrep -C 15 "java.lang.NullPointerException" *.gz
# 查找11:00到11:30之间的异常
grep -C 10 "java.lang.NullPointerException" a.log | grep "2025-07-03 11:[0-3][0-9]"
# 查找包含NullPointerException但不包含"expected"的日志
grep -A 50 "java.lang.NullPointerException" a.log | grep -v "expected"
参数 | 功能 | 示例 |
---|---|---|
-B N | 显示匹配行前N行 | grep -B 5 "error" log |
-A N | 显示匹配行后N行 | grep -A 50 "exception" log |
-C N | 显示匹配行前后各N行 | grep -C 10 "warning" log |
-v | 反向匹配(排除) | grep -v "debug" log |
-i | 忽略大小写 | grep -i "nullpointer" log |
-H | 显示文件名 | grep -H "error" *.log |
掌握这些技巧后,你将能够更高效地定位日志中的问题,快速获取完整的上下文信息,而不再局限于单行日志的查看。
本文来自博客园,作者:Micky233,转载请注明原文链接:https://www.cnblogs.com/geek233/p/19009296
参与评论
手机查看
返回顶部