Linux中grep用-A、-B、-C选项分别显示匹配行后、前、前后各N行,-A N、-B N、-C N(等价--context=N)支持多匹配并以--分隔,可组合-n、-i、--color等提升效率。

Linux 中用 grep 显示匹配行的前后几行,主要靠 -A(after)、-B(before)和 -C(context)三个选项,它们分别控制显示匹配行之后、之前、以及前后各多少行。
显示匹配行之后的 N 行(-A)
用 -A N 可以在每条匹配行后面额外输出 N 行内容,适合查看日志中错误发生后的后续操作或状态。
-
grep -A 2 "error" /var/log/syslog:查到含 "error" 的行,并显示它后面 2 行 - 若匹配多处,每处都会独立附带后 N 行,中间用
--分隔
显示匹配行之前的 N 行(-B)
-B N 作用相反,常用于定位问题发生前的上下文,比如服务启动前的配置加载记录。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
-
grep -B 3 "failed to start" journalctl -u nginx:找出失败信息,并看它前面 3 行做了什么 - 同样支持多匹配,各段之间用
--隔开
同时显示前后各 N 行(-C 或 --context)
-C N 是最常用的组合方式,等价于 -A N -B N,能一次性看到完整的上下文环境。
-
grep -C 1 "timeout" app.log:每处匹配行前后各 1 行,共 3 行一组 - 也可写成
grep --context=2 "warning",效果一样
实用小技巧
可以组合使用这些选项,还能配合其他常用参数提升效率:
- 加
-n显示行号:grep -C 2 -n "panic" dmesg.log - 加
-i忽略大小写:grep -i -C 1 "config" - 加
--color=always高亮关键词,更易定位 - 用
grep -C 0 "pattern"可只显示分隔线--,方便识别不同匹配块

















