sed +如何在匹配文件中的连续两行后用sed或awk附加一些文本?

时间:2010-08-23 14:30:48

标签: sed

如何在匹配文件中的连续两行后通过sed或awk附加一些文本? 备注(如果存在则需要忽略空行)

例如

我们想在文件

中的以下匹配行之后附加文本“this is new line”
   vopied  13783/tcp  # VOPIED Protocol
   vopied  13783/udp  # VOPIED Protocol

这是新行

利迪娅

2 个答案:

答案 0 :(得分:2)

sed '
  /\/tcp/{
    N
    /.*\/tcp.*\n.*\/udp.*/a\
    this is the new line
  }
' yourfile

在你的另一个问题中,我将阐明这些步骤。

  1. 检查与tcp文本匹配的任何行,并在其上应用一系列命令:

    予。获取模式空间中的新行(存储要匹配的字符串)

    II。检查第一行是否匹配tcp,第二行是udp。如果有,请附加文字。

答案 1 :(得分:0)

awk '/vopied/{f=1}f&&!/vopied/{print "next line";f=0}1' file