1

好的,我发现了这个问题:

如何使用 sed 删除匹配的行,上一行和下一行?

并且刚刚花了最后一个小时尝试编写与字符串匹配的内容并删除包含字符串的行及其下方的行(或变体 - 删除其下方的 2 行)。

我觉得我现在正在输入随机字符串。请有人帮助我。

4

2 回答 2

4

如果我理解正确,删除匹配线和之后的一行

/matchstr/{N;d;}

匹配线和之后的两行

/matchstr/{N;N;d;}
  • N引入下一行
  • d- 删除生成的单行
于 2010-01-13T23:56:47.737 回答
0

你可以使用awk。例如,搜索单词“two”并在其后跳过 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
于 2010-01-14T00:44:55.713 回答