仕事で新しいCSVファイルと古いCSVファイルでどの部分が変わっているのかわからなかったので比較の方法を探してみました。PowerShellでもあるんですね。
この方法で比較することはできますが、出力する二つのファイルが大きく変わってしまっているとほとんどの部分が違うものとして出てくるので必ずしも有効なものとは限りません。
さて、PowerShellでは次のように入力します
PS> $A = Get-Content %新しいCSVファイル%
PS> $B = Get-Content %古いCSVファイル%
PS> Compare-Object $A $B
下記のような結果が返ってきました。適当に加工してあるものです。
InputObject SideIndicator
----------- -------------
6007,23 =>
6008,23 =>
6009,23 =>
6011,23 =>
6013,23 =>
6049,21 =>
6138,23 =>
6160,21 =>
6161,23 =>
6162,23 =>
6163,27 =>
6164,24 =>
2187,21 =>
2198,21 =>
2203,21 =>
2206,21 =>
2224,21 =>
2045,30 =>
8127,23 <=
8128,23 <=
8129,23 <=
8131,23 <=
8133,23 <=
8414,21 <=
8644,23 <=
8646,21 <=
8647,23 <=
8648,23 <=
8649,27 <=
8650,24 <=
3187,21 <=
3198,21 <=
3203,21 <=
3206,21 <=
3224,21 <=
2045,24 <=
古いファイルからなくなった行には「=>」、新しいファイルで追加された行には「<=」が表示されて、内容も出てきます。
これで新しいファイルで追加された内容がわかるので変更点を見落としにくくなります。
とはいえ画面に出ているだけではリストなども作れないので標準出力を適当なファイルにリダイレクトさせておくと良いかもしれません。
PS> Compare-Object $A $B > diff.txt
なんらかの事情で新旧で一致している行も表示したい場合には
PS> Compare-Object $A $B -IncludeEqual
とすると一致している行も表示され、SideIndicatorカラムには「==」が表示されるようになります。