2017-07-15 92 views
-1

我正在处理一些TPT脚本来处理我们有的大文件。现在,文件中的每个记录长度都有一个分隔符|添加分隔符到文件结尾

问题是并非所有字段都被每条记录使用。例如,记录1可能有100个字段,记录2可能有260个。对于TPT的工作,我们需要为每个字段分配一个分隔符,因此填充少于261个字段的记录需要附加适当数量的管道到每个记录的末尾。

所以,采取我上面的例子中,记录一个本来161米的管道并在末尾和录制两个将有1

我有一个Perl脚本,这会对每个记录管的数量,但我我不确定如何获取这些信息并完成将多条管道附加到现场的任务。

perl -ne 'print scalar(split(/\|/, $_)) . "\n"' 

有什么建议吗?

回答

2

要获得管道符号的数量,可以使用tr运算符。

my $count = tr/|//; 

只是减去最大数量管道符号的数量来获得管道的数量增加,使用x(次)运营商,让他们:

perl -lne 'print $_, "|" x (260 - tr/|//)' 

我不知道该数字是否正确,取决于管道是否也开始或结束该线路。