grep
grep 是一个强大的文本搜索工具,支持正则表达式。常用选项:
-i
:忽略大小写-r
:递归搜索-v
:反向匹配-n
:显示行号
示例:
# 忽略大小写
grep -i "error" /var/log/syslog
# 检查查找
grep "ERROR" /var/log/messages
# 显示行号+高亮
grep -ni --color=auto "ERROR" /data/tomcat/logs/catalina.out
# 统计关键字出现次数
grep -c "ERROR" /var/log/messages
# 排除
grep "ERROR" /var/log/messages | grep -v "DEBUG"
# 检索多关键字
grep -E "ERROR|WARN" /var/log/messages
egrep "ERROR|WARN" /var/log/messages
# 抽取关键部分
grep -o "ERROR.*" /data/tomcat/logs/catalina.out
# 检索整个目录
# -r参数是遍历当前目录及目录下所有文件,在代码目录里递归搜索 https://www.liyb.com 标记。
grep -ir "https://www.liyb.com" ./logs
# 限定文件类型
grep -ir --include="*.log" "Logger" ./logs
# 查看上下文
# 匹配结果前后各显示 3 行上下文。
# 组合:-A N 只看后面 N 行
# -B N 只看前面 N 行
grep -C 3 "ERROR" catalina.out
# 实时过滤
tail -f catalina.out | grep "ERROR"
# 在所有 .log 文件里查找 OutOfMemory 报错
find ./ -name "*.log" | xargs grep "OutOfMemory"