gpt4 book ai didi

awk - 仅当前一行具有另一个特定模式时才删除具有模式的行

转载 作者:行者123 更新时间:2023-12-02 16:06:09 24 4
gpt4 key购买 nike

仅当前一行具有另一个特定模式(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 如何做到这一点?提前谢谢你,

最佳答案

假设“模式”是指“部分正则表达式匹配”,因为这是您在问题的 sed 脚本中使用的内容:

$ awk '!(/PATTERN 2/ && prev~/PATTERN 1/); {prev=$0}' file
PATTERN 1
NNN
PATTERN 2
PATTERN 1
blabla
PATTERN 1
blabla
PATTERN 2
PATTERN 1

关于awk - 仅当前一行具有另一个特定模式时才删除具有模式的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69331166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com