最常用方法是grep -o配合wc -l统计关键字精确出现次数,支持大小写控制、多文件及递归搜索;grep -c统计含关键字的行数;zgrep处理压缩文件;vim中用:%s/keyword//gn预览匹配次数。

最常用、最直接的方法是用 grep -o 配合 wc -l,它能准确统计关键字**出现的总次数**(不是行数),支持大小写控制和多文件处理。
用 grep -o 统计精确匹配次数
这是推荐的首选方式,-o 选项让 grep 每次只输出一个匹配项(哪怕一行里出现多次),再用 wc -l 计数:
- 统计单个文件中 "error" 出现次数:
grep -o 'error' app.log | wc -l - 不区分大小写:
grep -o -i 'error' app.log | wc -l - 统计多个文件总次数:
grep -o -i 'error' *.log | wc -l - 统计当前目录及子目录所有 .log 文件:
grep -r -o -i 'error' --include="*.log" . | wc -l
用 grep -c 统计含关键字的行数
如果只需要知道“有多少行包含该关键字”,而不是“关键字总共出现了几次”,可用 -c 选项:
-
grep -c 'warning' system.log—— 输出含 "warning" 的行数 - 注意:若某行出现两次 "warning",仍只计为 1 行
- 同样支持
-i(忽略大小写)、-r(递归)等参数
处理压缩日志文件(如 .gz)
无需解压,直接用 zgrep 替代 grep:
zgrep -o 'timeout' access.log.gz | wc -l- 支持
-i、-r(对多个 .gz 文件)等常用选项 - 多个压缩文件可一起处理:
zgrep -o '500' *.log.gz | wc -l
在 vim 编辑器里快速查看(适合临时查)
已打开文件时,在命令模式下输入:
-
:%s/keyword//gn—— 显示共匹配多少处(n表示不执行替换,仅预览) - 例如查 "null":
:%s/null//gn - 支持正则,如查完整单词:
:%s/\<null>//gn</null>











