下記のサイトに改行コードが含んでいるcsvをパースする方法がperlありましたので こちら 改変しましてコード化しました。
csv2tsv.pl
#!/usr/bin/perl use strict; use warnings; my $column = ''; while (my $line =) { my $count = 0; $line .= while ($line =~ tr/"// % 2 and !eof(STDIN)); $line =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/; my @values = map {/^"(.*)"$/s ? scalar($_ = $1, s/""/"/g, $_) : $_} ($line =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g); for $column (@values) { $column =~ s/\x0D\x0A|\x0D|\x0A//g; print $column, "\t"; } print "\r\n"; }
上記をcsv2tsv.plとしてサンプルを作成いたしました。 test.csv
header1,header2,header3 test1,test2, "test,3" "test 1",test2,test3上記が、サンプル用csvとなります。
cat test.csv | csv2tsv.plこちらのサンプルで改行付きcsvをパースできます。