删除匹配模式的行和所有后续行,直到第二个模式

时间:2018-10-03 07:02:20

标签: regex sed

我正在尝试使用sed删除匹配特定模式的行以及所有后续行,直到找到另一个模式。

例如:

This is a line I want to delete,
this is second line that should be deleted.
And this is stop-pattern which should terminate deletion.

我要删除上面整个段落,为sed提供两个模式 / delete / (这是开始模式,应删除包含该模式的整行)和 / deletion。 (这是确定停止删除的点的模式)。

我该如何编写sed命令来完成此任务?

1 个答案:

答案 0 :(得分:1)

您可以使用

sed '/delete,/,/deletion\./d' file > outfile

在这里

  • /delete,/,/deletion\./告诉sed在行之间(包括行)匹配文本的一部分,从一个约束delete,开始到具有deletion.的行结束(注意.必须转义以匹配文字点)
  • d告诉sed删除该行代码。

查看online sed demo