如何在grep中显示匹配之前或之后的所有行?

我发现我可以用来grep -A10 "search string" file.txt在文件中找到搜索字符串后显示 10 行或grep -B10 "search string" file.txt之前显示 10 行。如何设置它以显示比赛前后的所有行?

例如,我有这个文件:

This is some text.
This is some more text.
This is some text.
This is some more text.
This is some text.
This is some yet more text.
This is some text.
---
This is some more text.
This is some text.
This is some more text.

我需要在第一次搜索中打印在“---”之前找到的所有内容,无论有多少行。

我需要在第二次搜索中,打印在“---”之后找到的所有内容,无论之后有多少行。

回答

这可以在 中轻松完成awk,以防万一。

第一个解决方案:要获取所有行,直到找到第一个字符串,可以尝试:

awk '1; /test/{exit}' Input_file

第二种解决方案:从字符串中获取行匹配到直到结束尝试:

awk '/test/{found=1} found' Input_file


以上是如何在grep中显示匹配之前或之后的所有行?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>