sed + как добавить текст с помощью sed или awk после сопоставления двух последовательных строк в файле? - PullRequest
0 голосов
/ 23 августа 2010

как добавить текст с помощью sed или awk после сопоставления двух последовательных строк в файле? примечание (необходимо игнорировать пустые строки, если они существуют)

например

мы хотим добавить текст «это новая строка» после следующих строк соответствия в файле

   vopied  13783/tcp  # VOPIED Protocol
   vopied  13783/udp  # VOPIED Protocol

это новая строка

1010 * Lidia *

Ответы [ 2 ]

2 голосов
/ 23 августа 2010
sed '
  /\/tcp/{
    N
    /.*\/tcp.*\n.*\/udp.*/a\
    this is the new line
  }
' yourfile

Как и в вашем другом вопросе, я поясню шаги.

  1. Проверьте наличие строки, соответствующей тексту tcp, и примените к ней ряд команд:

    I.Получить новую строку в шаблонном пространстве (где хранятся строки для сопоставления)

    II.Проверьте, соответствует ли tcp в первой строке и udp во второй строке.Если да, добавьте к нему текст.

0 голосов
/ 23 августа 2010
awk '/vopied/{f=1}f&&!/vopied/{print "next line";f=0}1' file
...