将分隔符添加到文件末尾

时间:2017-07-15 19:43:58

标签: perl file delimiter

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

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

因此,以上面的例子为例,记录一个将有161个管道附加到结尾,记录两个将有1个。

我有一个perl脚本,它将计算每条记录中的管道数量,但我不知道如何获取该信息并完成将多个管道附加到该字段的任务。

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

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

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

my $count = tr/|//;

只需从最大数字中减去管道符号的数量以获得要添加的管道数量,使用x(次)运算符来获取它们:

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

我不确定数字是否正确,这取决于管道是否也开始或结束。