存在很多解决方案,但这里的特殊性是我需要能够在一行内分割,剪切应该在模式之前发生。例如:根据模式将一个文件分割成多个文件(可以在行内发生切割)
INFILE:
<?xml 1><blabla1>
<blabla><blabla2><blabla>
<blabla><blabla>
<blabla><blabla3><blabla><blabla>
<blabla><blabla><blabla><?xml 4>
<blabla>
<blabla><blabla><blabla>
<blabla><?xml 2><blabla><blabla>
应与模式成为<?xml
Outfile1:
<?xml 1><blabla1>
<blabla><blabla2><blabla>
<blabla><blabla>
<blabla><blabla3><blabla><blabla>
<blabla><blabla><blabla>
Outfile2:
<?xml 4>
<blabla>
<blabla><blabla><blabla>
<blabla>
Outfile3:
<?xml 2><blabla><blabla>
其实perl
脚本的验证答案here我的小例子正常工作。但它会为我的更大(约6GB)实际文件生成一个错误。错误是:
panic: sv_setpvn called with negative strlen at /home/.../split.pl line 7, <> chunk 1.
我没有权限评论,这就是为什么我开始一个新的职位。 最后,一个Python
解决方案将更受赞赏,因为我更了解它。
易于理解且非常高效。谢谢! – LostInTranslation
@LostInTranslation:谢谢,但请参阅编辑 – georg
行。那不是我的情况。唯一的(小问题)是它创建了第一个空文件。 – LostInTranslation