ホーム  > いわゆる日記  > 複数のCSVから特定文字列を除いて1ファイルに結合する

2008年12月31日

複数のCSVから特定文字列を除いて1ファイルに結合する

この間ハマった仕事を年内に片付けておきたかったので試してみてた。

要件としては、1日ごとに生成されるアンケート結果のCSVを週イチで集計する時に1つのファイルに結合したい、っての。集計自体はDBサーバにアップしてやるんだけど数十個もあるファイルをいちいちアップしたくないし、ファイルごとのカラム名(1行目)が邪魔になるのでそれを除外したい、となる。

CSVの中身は↓こんなの。

"id","日時","1200,mail","9999,radio"
"735","2008-10-16 00:01:15","hoge1@example.com","満足"
"786","2008-10-16 00:21:13","hoge2@example.com","不満"
          ・
          ・
          ・

1行目がカラム名。1ファイルごとにカラム名があるから結合するときに除外したい。んで元がCSVだから文字列がダブルクォート(")でくくられてるしカンマ(‚)区切りになってる。

Perlでちゃちゃっとやればいいかと思ったけど、そしたら作業するみんなにPerlをインストールしなきゃいけないので却下。
んでいろいろと考えてみたらDOSコマンドだけで出来た。

以下手順メモ。

⁄⁄カレントディレクトリに移動
cd C:\temp\enquete_sample

⁄⁄全CSVから「日時」を含まない行を抽出して1つのTxtファイルに結合する
type sample-*.csv | find /v "日時" › merge_enquete.txt

年明けにまたやんなきゃいけないけど、ひとまずこれで年を越せますな。

このページの先頭へ

« 仕事収め | ホーム | 明けましておめでとうございます。 »


トラックバック

このエントリーのトラックバックURL:

コメントを投稿

(コメントは承認後に公開されます。しばしお待ちください。)


アーカイブ


» 以前の日記

このブログを購読