【问题标题】:How to delete a particular line and also the line immediately above it如何删除特定行以及紧接其上方的行
【发布时间】:2013-08-06 22:52:05
【问题描述】:

我发现了很多使用 sed/grep 能够删除文本文件中的特定行的示例,但我希望能够删除该行以及紧接其上方的行。关于我应该从哪里开始的任何想法?

我试过 sed '/pattern/d' ./file 只删除特定的行。

【问题讨论】:

  • 没有尝试过,这里有一个建议:将上一行合并到您的模式中,类似于^.*\noriginalpattern 的内容 - 并删除整个内容。

标签: regex unix sed grep


【解决方案1】:

这可能对你有用(GNU sed):

sed '$!N;/\nPATTERN/d;P;D' file

这会在模式空间中保留 2 行,如果第二行包含模式,则删除两者。

【讨论】:

  • $!N; 的作用是什么?意思是?这是否意味着任何非空行? .我无法删除上面代码的 2 行不知道为什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2016-08-13
  • 2017-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多