如何在文件中查找文本并根据模式上下获取行

时间:2017-09-13 06:38:27

标签: linux command-line split

如何在文件中找到特定文字' 12345'然后上下移动所有行,直到收到通知:'使用linux控制台命令而无需硬编码上行和下行的行数?

收到通知:

随机文字

随机文字

...

12345

随机文字

...

随机文字

收到通知:

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法:

 $ awk '/str1/ {p=1}; p; /str2/ {p=0}' file
  • 当找到str1时,则变量p = 1。它只是在p == 1时打印线条。这是通过p条件完成的。如果为true,则执行默认的awk操作,即print $ 0。否则,它没有。
  • 当找到str2时,则变量p = 0。在p条件之后检查此条件时,它将打印第一次出现str2的行。