我的文件如下。
ID || DATE || AMOUNT
XX||20130801@@20130901@@20131001@@20131101||100@@200@@300@@400
我希望使用perl输出如下。
xx||20130801||100
xx||20130901||200
xx||20131001||300
xx||20131101||400
请帮我讲解如何使用perl进行转换。
答案 0 :(得分:1)
perl -F'\|\||@@' -lanE'$.>1 or $" ="||",next; say "@F[0,$_,$_+4]" for 1..4' file
答案 1 :(得分:1)
perl -F'\|\|' -lane '@a=split(/@@/,$F[1]); @b=split(/@@/,$F[2]); print "$F[0]||$a[$_]||$b[$_]" foreach 0..$#a;' file
输出:
ID || DATE || AMOUNT
XX||20130801||100
XX||20130901||200
XX||20131001||300
XX||20131101||400