
改行だけでなく、以下にあるカンマを含んだCSVファイルは、(1)での対応でもできないので、順番に対応します。
1.まず、カラムの改行を整える
2.””内の改行を修正する
——
1,2,3,”ああああ,いいいい”,”heoへろ”
—–
実際、新潟市オープンデータではあります!
perlでカラム内の改行を整える
#!/usr/bin/env perl use strict; use warnings; my $line = ""; while (<>) { $line .= $_; my @dqm = $line =~ /\"/g; # double quote を数える next if @dqm % 2; # 奇数なら次の行を末尾に足す { ### カラム中の改行を削除し1行で出力 $line =~ s/\n//g; print "$line\n";} $line = ""; # 処理後は空にする }
awkのを{FPAT=”([^,]+)|(\”[^\”]+\”)”
}使う
ただのカンマ区切りだと、正しくカラムを取り出せない $ echo '1,2,3,"ああああ,いいいい","heroへろ"' | awk -F ',' '{print $4}' "ああああ 対応したもの ※ただし、改行があると上のperlを前段で実行して処理した $ echo '1,2,3,"ああああ,いいいい","heroへろ"' | awk -v FPAT='([^,]+)|(\"[^\"]+\")' '{print $4}' "ああああ,いいいい"