我正在尝试拆分一个非常规则的巨大文本文件(约 5 亿行文本),如下所示:
-- Start ---
blah blah
-- End --
-- Start --
blah blah
-- End --
...
其中 ... 表示重复模式,“blah blah”的长度可变~ 2000 行。我想分开第一个
-- Start --
blah blah
-- End --
块到一个单独的文件中,并以最快的方式(运行时,考虑到我将运行多次)从原始文件中删除它。
理想的解决方案是从原始文件中剪切初始块并将其粘贴到新文件中,而不加载巨大的初始文件的尾部。
我通过以下方式尝试了 csplit:
csplit file.txt /End/+1
这是一种有效的方法,但在时间上效率不高。
编辑:如果我们从文件中删除最后一个“start-end”块而不是第一个块,是否有解决方案?