Linux与运维

Linux 文本内容检索神器:grep 常用高频参数与实战技巧

grep(Global Regular Expression Print)是 Linux 运维与开发中最基础且强大的文本过滤与代码检索工具。熟练掌握 grep 常用参数组合,可以在数百兆的日志与庞大代码库中毫秒级定位问题根源。本文总结最实用的 grep 实战指令。


一、 最常用的四大黄金参数组合

# 在当前目录及所有子目录下递归检索指定文本,并显示匹配行号与文件名
grep -rnI "DB_PASSWORD" ./
  • -r (Recursive):递归检索所有子目录;
  • -n (Line Number):在输出结果中打印匹配行的行号;
  • -I (Ignore Binary):自动忽略二进制文件(避免控制台被乱码刷屏);
  • -i (Ignore Case):忽略大小写匹配。

二、 日志排查高频场景

1. 查看匹配行前后上下文(排查报错堆栈神技)

# 显示匹配行以及其后的 5 行(After)
grep -A 5 "NullPointerException" /var/log/nginx/error.log

# 显示匹配行以及其前的 5 行(Before)
grep -B 5 "Fatal Error" /var/log/app.log

# 显示匹配行前后各 3 行(Context)
grep -C 3 "502 Bad Gateway" /var/log/nginx/access.log

2. 排除特定内容(反向过滤)

# 查看进程列表,并排除 grep 自身进程
ps aux | grep node | grep -v grep