大量のテキストファイルをまとめる

途方も無い数のテキストファイルを見て欲しいといわれることがたまにあります。

たまになので忘れがちですが、未来の自分への手紙。

以前、大量のテキストファイルをまとめる方法は書いたことがあるのですが、

大量のCSVファイルやLOGファイルを一瞬で1つのファイルにする方法
どうでも良いけど、一瞬じゃないよね。データ量によっては。。
ま、一つずつ開いてエクセルに貼って~を繰り返す に比べれば「一瞬」だけども。

今回は、マージするときに、不要な行は除いて一つのファイルを作る方法。

またまた、バッチファイルのお世話になります。コマンドプロンプト素敵a-25.gif

  • マージしたいファイルを一つのフォルダにまとめます。今回は、csvファイルをまとめます。
  • テキストエディタを開きます
  • 「findstr /v “ " *.csv > bassui.csv」 と書きます。カギカッコは不要です
  • ” ”の間に、不要な行に含まれる文字列を入れます。複数指定の場合は、スペース区切りです。
  • マージしたいcvsファイルが入っているフォルダに保存します。例えば、bassui.txt という名前で保存します。
  • bassui.txt を bassui.bat という拡張子に変更します。メッセージが表示される場合がありますが、突き進みます。
  • bassui.bat をダブルクリックで起動します。
  • 黒い画面が出ている間は、作成される bassui.csvを開いたりしてはいけません。黒い画面が消えるまで放置します。
  • 以上で処理は完了です。

findstr /v “削除したい行に含まれる文字" マージしたいファイル > マージ後作成されるファイル

↑こんな感じです。例えば。。。

findstr /v “.gif .css .js .jpg .jpeg .png Mozilla .ico" *.log > bassui.csv

これで、大量のLOGファイルの中の画像とかを削除したものを、bassui.csv という名前で作成できます。

ちなみに、 /v は「除く」という意味なので、逆に、

findstr “DoCoMo" bassui.csv > docomo.csv

こんな感じにすると、さっき作ったbassui.csv から、DoCoMoが含まれる行だけを抜粋できてしまうのです。もう、ホント神a-25.gifです。バッチファイル!

以上覚書でした。

Windowsコマンドプロンプト スパテク242 Vista/XP/2000対応 (スパテクシリーズ)