CSVファイルは今なおシステムの中で現役ばりばりに利用されています。様々なシステムから出力されるCSVファイルに対して、差分を確認したいと考えることはないでしょうか。通常の差分表示では、CSVのようなフォーマットではうまく表示できないかも知れません。 そこで使ってみたいのがcsvdiffです。CSVに特化した差分表示コマンドです。

csvdiffの使い方

普通にコマンドを打ったところです。追加された行、修正された行が確認できます。

$ csvdiff asof.csv asof2.csv
# Additions (1)
+ 20160525 13:15:00.075,AAPL,98.65,10,NASDAQ,98.55,98.56
# Modifications (19)
- 20160525 13:30:00.038,MSFT,51.95,155,NASDAQ,51.95,51.95
+ 20160525 13:30:00.038,GOOG,51.95,155,NASDAQ,51.95,51.95
- 20160525 13:30:00.048,GOOG,720.93,44,NASDAQ,720.5,720.93

重ね合わせると、どのセルが変更されているのかが分かりやすくなります。

csvdiffは行ごと、各セルごとに比較してくれます。ただし、セルの数が合っていないとエラーになってしまうので注意してください。セルの数が増減するようなCSVだとうまくいかないでしょう。セルごとに比較してくれるので、差分は見やすいです。

csvdiffはGo製のオープンソース・ソフトウェア(MIT License)です。

aswinkarthik/csvdiff: A fast diff tool for comparing csv files