在日常使用 Linux 的过程中,grep 命令几乎是必备的文本搜索工具,然而许多用户只知道它用来匹配文本行,却不清楚如何灵活控制匹配行的上下文显示。本文就来彻底讲透 grep 显示上下文的小技巧,帮助你更高效地使用这一强大的搜索命令。
标准 Unix/Linux 环境下的 grep,通过几个简洁的参数就能精确控制匹配行的上下文范围。具体用法如下:
-C 5 foo file 表示显示 file 文件中匹配 "foo" 的那一行,以及它上下各 5 行(即全上下文)。
-B 5 foo file 只显示匹配行及其前面的 5 行(前文上下文)。
-A 5 foo file 只显示匹配行及其后面的 5 行(后文上下文)。
当然,直接看命令格式更加直观:
grep -C 5 foo file # 显示 file 文件里匹配 foo 字符串的那一行以及上下各 5 行 grep -B 5 foo file # 显示匹配 foo 的行及其前 5 行 grep -A 5 foo file # 显示匹配 foo 的行及其后 5 行
如果你想查看当前系统上安装的是哪个版本的 grep,可以使用下面这条命令快速确认:
grep -V
至于升级 grep 的方法,同样非常简单。首先从官方网站(通过搜索引擎即可找到 grep 的主页)下载最新的源码包,然后编译安装到自定义路径,例如 /home/aaa/bin/。之后需要使用新版本时,可以直接调用 /home/aaa/bin/grep,或者将 /home/aaa/bin 添加到 PATH 环境变量中。更彻底的做法是将编译好的 grep 二进制文件直接覆盖到当前 grep 所在的目录,这样一次升级就能一劳永逸地使用最新版本。
