我正在开发一个TPT脚本来处理我们拥有的一些大文件。现在,文件中的每个记录长度都有一个分隔符|
。
问题是并非所有字段都被每条记录使用。例如,记录1可能有100个字段,记录2可能有260个字段。为了使TPT起作用,我们需要为每个字段分配一个分隔符,因此填充少于261个字段的记录,我需要附加适当的数量管道到每条记录的末尾。
因此,以上面的例子为例,记录一个将有161个管道附加到结尾,记录两个将有1个。
我有一个perl脚本,它将计算每条记录中的管道数量,但我不知道如何获取该信息并完成将多个管道附加到该字段的任务。
perl -ne 'print scalar(split(/\|/, $_)) . "\n"'
有什么建议吗?
答案 0 :(得分:2)
要获取管道符号的数量,您可以使用tr
运算符。
my $count = tr/|//;
只需从最大数字中减去管道符号的数量以获得要添加的管道数量,使用x
(次)运算符来获取它们:
perl -lne 'print $_, "|" x (260 - tr/|//)'
我不确定数字是否正确,这取决于管道是否也开始或结束。