gpt4 book ai didi

python - Bash 或 Python 倒退?

转载 作者:太空狗 更新时间:2023-10-29 23:56:21 26 4
gpt4 key购买 nike

我有一个文本文件,其中随机出现了很多字符串@STRING_A,我有兴趣编写一个仅删除其中一些字符串的简短脚本。特别是扫描文件的文件,一旦找到以该字符串开头的行,例如

@STRING_A

然后检查向后 3 行是否有另一行以相同的字符串开头,例如

@STRING_A


@STRING_A

如果发生,则向后删除 3 行。我在考虑 bash,但我不知道如何用它“倒退”。所以我确信这对于 bash 是不可能的。我也考虑过 python,但是我应该将所有信息存储在内存中以便倒退,然后对于长文件来说这是不可行的。

你怎么看?是否可以在 bash 或 python 中完成?

谢谢

最佳答案

有趣的是,在所有这些时间之后,还没有人给出实际措辞的问题解决方案(正如@John Machin 在评论中指出的那样)——只删除前导标记(如果后面跟着另一个这样的标记 3 行),不是包含它的整行。当然,这并不难——这是 @truppo 的有趣解决方案所需要的一个小模组,例如:

from itertools import izip, chain
f = "foo.txt"
for third, line in izip(chain(" ", open(f)), open(f)):
if third.startswith("@STRING_A") and line.startswith("@STRING_A"):
line = line[len("@STRING_A"):]
print line,

当然,在现实生活中,人们会使用 iterator.tee 而不是读取文件两次,将此代码放在一个函数中,而不是无休止地重复标记常量,&c;-)。

关于python - Bash 或 Python 倒退?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1012490/

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