
改行だけでなく、以下にあるカンマを含んだ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}' "ああああ,いいいい"