在文件中查找单词并显示在下方和上方吗?

在文件中查找单词并显示在下方和上方吗?

可能重复:
如何 grep 2 或 3 行,其中一行包含我想要的文本,其他行位于其下方?

假设我有一个文件。我想在其中找到一个特定的单词并显示该行。

有什么方法可以让我做到上述操作,同时还能包括结果行中上面和下面的 10 行?

我该如何使用 Linux 命令行来做到这一点?

答案1

假设你的文件名为filename,你的正则表达式是foo,并且想要打印匹配的行以及匹配行上方和下方 10 行以内的行:

grep -C10 foo filename

更一般地,对于n匹配前后的行:

grep -Cn foo filename

此解决方案可与 GNU grep 配合使用(Ubuntu 和几乎所有其他基于 Linux 的操作系统都具有该功能)。不过-C,并非所有grep实现都支持该标志。

打印行仅有的在匹配之前或之后,分别使用-Bn或开关,其中是要在匹配之前或之后添加的行数。有关替代方法的更多信息,请参阅-Ann这个相关问题(感谢福斯自由以注意到相似性)。

相关内容