複数のcsvファイルを一つにまとめる方法(例文あり)

「このcsvまとめといて」と上司や先輩から言われて、csvファイルが100個ほど用意されていたなんてことはよくあることです。経験の少ない新人や若手にとって酷な作業だと思います。それはさておき、データ整備などで最終的に一つのテーブルにインポートしたいのに、csvファイルだけ一つにまとまってないことも多々あることです。今回はcsvファイルの結合方法を紹介したいと思います。

コマンドプロンプトを使って結合する

Windowsのコマンドプロンプトを使用して、複数のcsvファイルを一つにまとめることが出来ます。たったの3ステップだけです。

  • コマンドプロンプトを起動する 
  • カレントディレクトリを指定する
  • TYPEコマンドを使用してファイルの結合を行う

この3つだけです。コマンドプロンプトの起動は割愛させて頂きます。カレントディレクトリの指定は以下をコマンドプロンプトに貼り付けてEnterキーを押下して下さい。

cd c:\csvdir

c:\csvdir』 の部分に、指定したいディレクトリパスを記載します。今回の場合、csvファイルが存在するディレクトリパスを指定します。次に、csvファイルの結合ですが、TYPEコマンドを利用します。以下のコマンドをコマンドプロンプトに貼り付けてEnterキーを押下すれば、csvファイルの結合が実行されます。

type *.csv > c:\csvdir\result.csv

 『type *.csv』の部分は全てのcsvファイルを対象としています。ワイルドカードの利用です。ファイル名称が何であったとしても、拡張子がcsvであれば対象となります。また、カレントディレクトリに指定した『c:\csvdir』というパスの後ろに『\result.csv』を続けて記載しています。出力ファイルをcsvに指定することで、結合したcsvファイルのアウトプット先もcsvになります。結果的には、csvファイルが複数あるディレクトリに、もう一つ『result.csv』というcsvファイルが出来上がっています。

 

TYPEコマンドの性質

コアな部分まで説明することは割愛しますが、TYPEコマンド自体はテキストファイルの中身をコマンドプロンプトの画面上に表示させるコマンドです。コマンドプロンプト上に表示させるだけでは何も起こらないので、ファイルに出力する命令をする必要があります。それが『>』の部分です。この『>』を記載することで、左側の内容を右側のファイル名に出力してくれます。上記のコマンドをもう一度見てみましょう。

type *.csv > c:\csvdir\result.csv

左側の『type *.csv』はコマンドプロンプトに表示させるだけです。ワイルドカードを利用しているので、カレントディレクトリ内の全てのcsvファイルの情報を表示します。『>』は左の結果を右に出力することを意味しています。そして、出力先である右側は『c:\csvdir\result.csv』というファイルのフルパスを記載しています。

 

csvファイル以外でも可能

テキストファイル形式であれば基本的に可能です。「.csv」「.txt」「.log」「.tsv」「.htm」などがあります。例えば、システムが毎日のようにログファイルを出力するとして、ある日、先輩から「このログまとめて1つのログファイルにしといて」と言われたらどうしましょう。先のコマンドを応用して、拡張子が「.csv」の部分を「.log」に変えれば、ログファイルがまとまって出力されます。2つや3つくらいなら手でやれば早いですが、100ファイルなんてやってたら日が暮れますし、途中で疲れてミスするかもしれません。なので、TYPEコマンドとファイル出力を組み合わせて、一気にやってしまった方が確実に後が楽です。

 

まとめ

大量のcsvを一つにまとめる方法を紹介させて頂きました。テキスト形式であれば、本記事の拡張子を変更することで応用が可能です。条件としては、一つのディレクトリにまとまってファイルが存在している必要がありますね。色々と試してみて下さい。