節約プログラマー雑記

sortコマンドとWinMergeで簡単データ比較

前書き

仕事の中で新旧データの差異チェックを行うことになったのですが、その際対象のデータがソートされておらず、手動でチェックするにも50件ほどとそれなりに数があり面倒な作業を依頼されていました。そこで作業を簡略化できないかと思い、「1. sortコマンドでファイルを一括ソート」、「2. WinMergeで比較」の2手順で、複数データの一括比較をやってみました。


1. sortコマンドでファイルのソート

ファイルをソートするにあたっては、タイトルのようにsortコマンドを実行するのですが、一つ一つファイルを指定するのは正直面倒です。
なので、簡単ですが、下記のようなbatファイルを作成し、batを起動するとフォルダを指定して、フォルダ配下のファイルを全てsortコマンドでデータを並べ替えるようにしました。

ファイル名:sort.bat

@ECHO OFF
set /p FOLDER="ソート対象フォルダを入力してください:"

IF NOT EXIST %FOLDER% GOTO EXIT

CD %FOLDER%
DIR
PAUSE

for %%A in (*.*) do (
ECHO %%A
SORT %%A /o %%A
)

ECHO ファイルのソートが完了しました。
pause
exit /b

:EXIT
ECHO 対象のフォルダは存在しません。
pause
exit /b


sortが完了すると下のような感じで、ファイル内のデータが昇順にソートされ、ツールでのデータ比較を容易に行うことができるようになります。

sort_result.png

2. WinMergeでファイル比較

ファイルのソートが完了しましたら、後はツールで比較するだけなので、良く使われるWinMergeを使って比較を行います。WinMergeの日本語公式サイトから、インストーラもしくはzip版をダウンロードして使います。

WinMergeを起動後、比較を行うファイルをドラッグアンドドロップで選択して、比較ボタンを押すと結果が表示され、データに差異がある場合は、その部分が黄色くなって表示されます。


・WinMerge比較選択画面 WinMerge_check.png

・WinMerge結果画面 WinMerge_result.png

このページでは、1ファイルのみの比較になっていますが、実際のテストではフォルダごと選択することで、複数ファイルで違いが無いか一括で確認を行い、1時間以上かかりそうだった作業を10分程で終えることができました。
テスト等の時は、ちょっとした手間で作業が楽になることがままありますのでご参考までに。