【发布时间】:2021-09-26 20:39:34
【问题描述】:
仅当前一行具有另一种特定模式(PATTERN 1)时,我才尝试删除具有特定模式(PATTERN 2)的所有行。
代码如下所示:
PATTERN 1
PATTERN 2 <- This line should be deleted
NNN
PATTERN 2
PATTERN 1
PATTERN 2 <- This line should be deleted
blabla
PATTERN 1
blabla
PATTERN 2
PATTERN 1
PATTERN 2 <- This line should be deleted
PATTERN 2 仅在上一行为 PATTERN 1
时才应删除- 我知道如何使用 PATTERN 2 删除所有行:sed '/PATTERN 2/d'
- 我可以删除 PATTERN 1 之后的所有行:sed '/PATTERN 1/{n;N;d}'
但是,我不知道将这两个要求应用于单个 AWK 或 SED。
如何用 AWK 做到这一点?提前谢谢你,
【问题讨论】:
-
在谈论匹配文本时切勿使用“模式”一词,因为它是模棱两可的。请阅读stackoverflow.com/questions/65621325/… 以了解该问题,然后将“模式”替换为字符串或正则表达式,并在您的问题中出现的任何地方全部或部分替换。
标签: awk