Используйте sed, чтобы удалить соответствующее регулярное выражение и строку (или две) под ним - PullRequest
1 голос
/ 14 января 2010

ОК, я нашел этот вопрос:

Как удалить совпадающую строку, строку выше и строку ниже, используя sed?

и только что потратил последний час, пытаясь написать что-то, что будет соответствовать строке, и удалить строку, содержащую строку и строку под ней (или вариант - удалить 2 строки под ней).

Я чувствую, что сейчас набираю случайные строки. Пожалуйста, кто-нибудь, помогите мне.

Ответы [ 2 ]

4 голосов
/ 14 января 2010

Если я правильно понял, удалить строку совпадения и одну строку после

/matchstr/{N;d;}

Строка соответствия и две строки после

/matchstr/{N;N;d;}
  • N вводит следующую строку
  • d - удаляет результирующую единственную строку
0 голосов
/ 14 января 2010

вы можете использовать awk. например, поиск слова «два» и пропустить 2 строки после него

$ cat file
one
two
three
four
five
six
seven
eight
$ awk -vnum=2 '/two/{for(i=0;i<=num;i++)getline}1' file
one
five
six
seven
eight
...