命令示例
grep -A 50 "Exception" a.log
搜索包含 "Exception" 的行,并显示其之后(After)的50行内容。
grep -A 50 "Exception" a.log | less
同上,但通过 less进行分页显示,便于浏览长文本。
tail -f a.log | grep -A 50 "Exception"
实时监控日志文件的新增内容,并打印匹配行及其后50行。
grep -H -A 50 "Exception" *.log
在当前目录所有 .log文件中搜索。-H 参数会显示匹配到的文件名。跨文件搜索,快速定位问题发生在哪个日志文件里。
zgrep -H -A 50 "Exception" *.gz
在所有的 .gz压缩文件中搜索,功能和 grep相同。搜索压缩过的历史日志,无需手动解压,直接查询。
grep -c "Exception" a.log
统计文件中关键词出现的次数(Count),只显示数字结果。快速统计异常频率,判断是偶发问题还是频发问题。
grep -B 10 "Exception" a.log
显示匹配行之前(Before)的10行内容。查看异常发生前的日志上下文,帮助分析导致异常的操作。
grep -C 5 "Exception" a.log
显示匹配行上下(Context)各5行的内容。同时查看异常发生前和后的日志,获取更完整的上下文信息。
grep -i "nullpointer" a.log
-i 参数使搜索忽略大小写。当不确定关键词大小写时,扩大搜索范围,避免遗漏。
核心参数解释
-A N After 显示匹配行之后的 N 行
-B N Before 显示匹配行之前的 N 行
-C N Context 显示匹配行上下各 N 行
-c Count 统计匹配行的次数
-i Ignore case 忽略大小写
-H With filename 显示匹配的文件名(在多文件搜索时有用)
-r Recursive 递归搜索目录下的所有文件
常用工具组合
tail -f 实时跟踪日志文件的新增内容。
| grep 将前一个命令的输出作为输入进行筛选。
| less 将输出转换为可分页、可搜索的浏览模式。
zgrep 专门用于在 .gz压缩文件中进行搜索,用法同 grep。