一般にホストコンピュータやオフコンなどで使用されることが多いのですが、入力項目を個々のレコードに分解しておき、その前後を特定のレコード(以下の例では、「START」と「END」)ではさんでいる形式のデータがあります。下記の例は、このようなデータをCSV形式のデータに変換するためのスクリプトです。
# to1record.pl # 内容 : 複数のレコードを1レコードにまとめて出力する。 # Copyright (c) 2004-2010 Mitsuo Minagawa, All rights reserved. # (minagawa@fb3.so-net.ne.jp) # 使用方法 : c:\>perl to1record.pl # open(IN1,"input.txt"); open(OUT1,">output.txt"); while ($line1 = <IN1>) { chop($line1); if ($line1 eq "START") { @out1 = undef; } elsif ($line1 eq "END") { print OUT1 join(",",@out1),"\n"; } else { push(@out1,$line1); } } close(IN1); close(OUT1);
START aa vv 4700 ccc 5238 END START bb dd 6200 xxx 6285 END START cc rr 3600 qqqqq 3227 END START dd pp 1900 yyyy 3095 END START ee gg 2400 tttttt 6497 END
aa,vv,4700,ccc,5238 bb,dd,6200,xxx,6285 cc,rr,3600,qqqqq,3227 dd,pp,1900,yyyy,3095 ee,gg,2400,tttttt,6497