以下问题:
我有一个分隔文件,其中行有 25 或 26 个字段。对于所有有 25 个字段的行,我需要在第 13 个字段之后添加一个空行,这样它也将有 26 个字段。
老的:
Z|432651242|987654321|XYZ|Abc|DEFEF||Abc-De-Fg|18|33221|Qwerty|18.06.3213|abc||123|Tepp|11.07.4443|2|||||4433322342344||
新的:
Z|432651242|987654321|XYZ|Abc|DEFEF||Abc-De-Fg|18|33221|Qwerty|18.06.3213|abc|||123|Tepp|11.07.4443|2|||||4433322342344||
我设法过滤了需要更改的行:
#!/usr/bin/perl
use strict;
use warnings;
my (@cols,$fieldLength,);
while(<>){
@cols = split('\|', $_);
$fieldLength=@cols;
if ($fieldLength==25){
print $_;
}
}
我的想法是替换分隔符“|” 在第 13 次出现“||”,但无法做到。我试图用谷歌搜索,但这些例子对我不起作用。
有人可以帮我吗?
我也很欣赏使用 CPAN 的 CSV 模块的解决方案。