gpt4 book ai didi

python - 删除连续的 2 行

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:17 25 4
gpt4 key购买 nike

我有以下格式的数据:

#@ <id_wxyz_1>
A line written after this.

#@ <id_123>
A line written after this one also.

#@ <id_wxyz_2>
One more line.

#@ <id_yex_9>
Another line.

现在我想删除 2 行:#@ <...> 中包含“wxyz”的行及其下一行。我想要的示例输出是:

#@ <id_123>
A line written after this one also.

#@ <id_yex_9>
Another line.

是否有一些 linux 命令也可以实现相同的目的,或者在 python 中是否有一些有效的方法可以实现相同的目的。我知道我可以使用 grep、sed 等有选择地删除一行。但是是否可以使用 linux 命令有选择地删除连续的 2 行

编辑:给出的答案非常好,但它们不适用于以下形式的输入:

#@ <id_wxyz_1>
A line written after this.

#@ <id_wxyz_2>
A line written after this.

#@ <id_wxyz_3>
A line written after this.

#@ <id_wxyz_4>
A line written after this.

#@ <id_wxyzadded5>
A line written after this.

对于上面的输入,我应该没有输出行。

再次编辑:我的另一组输入是:

#@ <id_wxyz0>
Line 1.
#@ <id_wxyz1>
line 2.
#@ <id_wxyz2>
line 3.
#@ <id_wxyz3>
line 4.
#@ <id_6>
line 5.

输出应该是

#@ <id_6>
line 5.

最佳答案

您可以使用 sed by 来执行此操作,例如。

/^#@ <.*wxyz.*>/ {
N #Add the next line to the pattern space
s/.*// #clear the line
N #Read another line
/^\n$/ d #if line was blank, delete and start next cycle (reading again)
D #Otherwise, delete up to newline, and start next cycle with that

}

注意:对于第二种情况,它实际上还是输出了一个空行

关于python - 删除连续的 2 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19618523/

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