
ソースファイル csv0a-test.csv
this,foo,100, this,foo,100, this,foo,100, this,"f oo",100,
変換ファイル csv0a.pl ※使うときは、chmod + x csv0a.pl で実行形式へ
#!/usr/bin/env perl use strict; use warnings; my $line = ""; while (<>) { $line .= $_; my @dqm = $line =~ /\"/g; # double quote を数える next if @dqm % 2; # 奇数なら次の行を末尾に足す { # 何かの処理 #chomp $line; #print "\nINPUT: [$line]\n"; # Debug ### Case1: カラム中の改行を削除し1行で出力 $line =~ s/\n//g; # print "$line\n"; # Debug ### Case2: カラム単位で処理 my @c = map {s/^"(.*)"$/$1/gs; $_} split(/,/, $line); # ↑コンマで分割し両端の「""」を削除 print join(",", map {qq("$_")} @c)."\n"; } $line = ""; # 処理後は空にする }
変換後
"this","foo","100"
"this","foo","100"
"this","foo","100"
"this","foo","100"

実はこれ、新潟市のオープンデータ対応です!
多分、ExcelをそのままCSV保存しただけ。