PerlでCSV形式データ作成・出力
Nid: 4
$ cat parsecsv.pl #!/usr/bin/perl use strict; use Encode; use Text::CSV_XS; use utf8; my @rows; my $csv = Text::CSV_XS->new ({ binary => 1 }) or die "Cannot use CSV: ".Text::CSV_XS->error_diag (); open my $fh, "<:encoding(utf8)", "input.csv" or die "input.csv: $!"; while (my $row = $csv->getline ($fh)) { $row->[2] =~ s/電話://; # 3列目の文字列”電話:”を削除。 push @rows, $row; } $csv->eof or $csv->error_diag (); close $fh; $csv->eol ("\r\n"); open $fh, ">:encoding(utf8)", "output.csv" or die "output.csv: $!"; $csv->print ($fh, $_) for @rows; close $fh or die "output.csv: $!";
UTFで保存。
$ nkf -w --overwrite parsecsv.pl
入力ファイル
$ cat input.csv 福岡県庁,〒812-8577福岡市博多区東公園7番7号,電話:092-651-1111, 佐賀県庁,〒840-8570佐賀市城内1丁目1番59号,電話:0952-24-2111, 長崎県庁,〒850-8570長崎市江戸町2番13号,電話:0958-24-1111, 熊本県庁,〒862-8570熊本市水前寺6丁目18番1号,電話:096-383-1111, 大分県庁,〒870-8501大分市大手町3丁目1番1号,電話:0975-36-1111, 宮崎県庁,〒880-8501宮崎市橘通東2丁目10番1号,電話:0985-24-1111, 鹿児島県庁,〒890-8577鹿児島市鴨池新町10番1号,電話:099-286-2111, 沖縄県庁,〒900-8570那覇市泉崎1丁目2番2号,電話:098-866-2074,
実行
$ perl parsecsv.pl
出力ファイル
$ cat output.csv "福岡県庁","〒812-8577福岡市博多区東公園7番7号","092-651-1111", "佐賀県庁","〒840-8570佐賀市城内1丁目1番59号","0952-24-2111", "長崎県庁","〒850-8570長崎市江戸町2番13号","0958-24-1111", "熊本県庁","〒862-8570熊本市水前寺6丁目18番1号","096-383-1111", "大分県庁","〒870-8501大分市大手町3丁目1番1号","0975-36-1111", "宮崎県庁","〒880-8501宮崎市橘通東2丁目10番1号","0985-24-1111", "鹿児島県庁","〒890-8577鹿児島市鴨池新町10番1号","099-286-2111", "沖縄県庁","〒900-8570那覇市泉崎1丁目2番2号","098-866-2074",