终端命令在包含 X 的行之后转储文件的接下来的 N 行?

终端命令在包含 X 的行之后转储文件的接下来的 N 行?

我想转储文件中包含“THE_WORD”的行之后的 10 行。

是否有一个巧妙的命令行单行程序可以实现这一点?

我能想到的最好的办法是这样的,但它显示 THE_WORD 之后的所有行,而不仅仅是 10 行:

tail MYFILE -n +`grep -n THE_WORD MYFILE|head -1|sed "s/:.*//"`

答案1

我猜您正在寻找命令的-A选项。-mgrep

grep -m1 -A10 PATTERN filename

它在文件中查找PATTERN( ) 的第一次出现,并将匹配后的 10 行包含到结果中。-m1filename

相关内容