2017-07-15 85 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/|//)' 

我不知道該數字是否正確,取決於管道是否也開始或結束該線路。