我有一个文本文件很多随机出现的字符串@STRING_A,我会有兴趣编写一个短脚本,只删除其中的一些.特别是一个扫描文件,一旦找到一个以这个字符串开头的行,就像
@STRING_A
Run Code Online (Sandbox Code Playgroud)
然后检查3行向后是否有另一个以相同字符串开头的行,例如
@STRING_A
@STRING_A
Run Code Online (Sandbox Code Playgroud)
如果发生,则向后删除3行.我在想bash,但我不知道如何"倒退"它.所以我相信bash是不可能的.我也考虑过python,但是后来我应该将所有信息存储在内存中以便向后转,然后,对于长文件来说,它是不可行的.
你怎么看?是可以用bash或python来做吗?
谢谢
And*_*tin -1
在 bash 中,您可以使用sort -r filename和tail -n filename向后读取文件。
$LINES=`tail -n filename | sort -r`
# now iterate through the lines and do your checking
Run Code Online (Sandbox Code Playgroud)