複数のcsvを一括でまとめて不要な行を削除する方法

プログラミング

データロガーで取得したデータがcsvで複数ファイルに分かれてしまった…一つのファイルにまとめるために、複数ファイルを開いてちまちまコピペ…という作業もコマンドラインをうまく活用すると簡単にできます。

やり方

  1. 一つのファイルにまとめたいcsvファイルをフォルダに集める
  2. コマンドライン起動
  3. 一つのファイルに纏める
  4. 不要な行を削除する

1.一つのファイルにまとめたいcsvファイルをフォルダに集める

まとめたいcsvファイルのみを一つのフォルダに集めます。ポイントは、まとめたいファイル以外は置かないこと。

例えば、c:\csv\inputに次のファイルを置きます。

  • test01.csv
  • test02.csv
  • test-post01.csv
  • test-post02.csv

2.コマンドライン起動

スタートメニューの「プログラムとファイルの検索」に「cmd」と入力し、エンターを押せばコマンドラインが起動できます。

上記で作成した作業フォルダに移動します。

C:\Users\xxx> cd c:\csv\input

もし、作業フォルダのドライブが現在のドライブと違う場合は次のように「/d」をつけて入力します。

D:\tmp> cd /d  c:\csv\input

3.一つのファイルに纏める

作業フォルダに移動したタイミングで次のように打ち込めば、c:\csv\outputにoutput.csvというファイル名でまとめたファイルが作成されます。

C:\csv\input> type *.csv > ../output/output.csv

ポイントは、まとめファイルの出力先を別フォルダにすることです。同じフォルダに作成すると、output.csvの内容も更に追加されてしまいます。

また、ファイルの指定にワイルドカードを使用しているため、次のようにすることでtest-post01.csvとtest-post02.csvのみをまとめることもできます。

C:\csv\input> type test-post*.csv > ../output/output2.csv

4.不要な行を削除する

不要な行を削除するときは、先程の出力ファイルが有るフォルダに移動した上で、下記コマンドを入力。

C:\csv\output> type output.csv | find /v "delete" >output3.csv

ここでは、output.csvが不要な行を削除したいファイル名、deleteが不要な行に含まれるキーワード、output3.csvが不要な行を削除したファイルになります。