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"