
ソースファイル 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保存しただけ。