一般にホストコンピュータやオフコンなどで使用されることが多いのですが、入力項目を個々のレコードに分解しておき、その前後を特定のレコード(以下の例では、「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