
Macのコマンドラインでdiffを使って2つのファイルを比較する方法
2つのファイルの違いを素早く比較したいですか?ターミナルを使い慣れている方には、コマンドラインの「diff」ツールが最適です。diffを使えば、入力したファイル間の差異をコマンド出力で簡単に比較できます。
diff コマンドは Mac ではデフォルトで使用可能で、ご参考までに Linux や他の Unix オペレーティング システムでも同じように動作します。Windows ユーザーにとっては、'fc' ファイル比較ツールの動作と非常に似ています。
最良の結果を得るには、リッチテキストではなく、何らかのプレーンテキストファイルで作業することをお勧めします。必要であれば、ファイルのコピーを作成し、Macのコマンドラインツールtextutil、またはテキストエディットを使ってプレーンテキストに変換することもできます。
コマンドラインでDiffを使ってファイルを比較する方法
diff はコマンド ライン ツールなので、まず /Applicaitons/Utilities/ にあるターミナル アプリを起動してから開始する必要があります。
コマンドラインでの diff の基本構文は次のとおりです。
diff (file input 1) (file input 2)
たとえば、現在のディレクトリで bash.txt と bash2.txt を比較する場合、構文は次のようになります。
diff bash.txt bash2.txt
-w フラグはプレーンテキストファイルの場合に便利です。これは、diff にファイル比較時に空白を無視するように指示するからです。もちろん、必要に応じて比較するファイルのフルパスを指定することもできます。例えば、編集した hosts ファイルと別の場所にある別のバージョンを比較する場合などです。
diff -w /etc/hosts ~/Downloads/BlockEverythingHosts.txt
サンプル出力は次のようになります。
$ diff -w /etc/hosts ~/Downloads/BlockEverythingHosts.txt
0a1
< ## < 127.0.0.1 localhost > # time for a break
9a12
> 127.0.0.1 facebook.com
「大なり」と「小なり」の記号は、一種のポインター矢印として機能し、元のコマンド構文で示された順序に関連して、差異が発生したファイルを示します。
diff は非常に強力で、diff を使用して 2 つのディレクトリの内容を比較することもできます。これは、バックアップやファイルの変更、ファイルの整合性を検証するのに役立ちます。
diff は当然コマンドラインで実行する必要がありますが、Mac OS の使い慣れたグラフィカルインターフェースでドキュメントを比較したい場合は、Microsoft Word で2つの Word 文書を比較するなど、様々なオプションが用意されています。コードと構文を扱う場合は、Xcode の FileMerge ツール、git、あるいは Mac 用の優れたテキストエディタ BBEdit をお試しください。Windows をお使いの場合は、「fc」コマンドは基本的に diff コマンドと同じように動作し、「fc file1 file2」と入力すると、diff とほぼ同じ比較結果が得られます。
diff や 2 つのファイルを比較するための他のヒントはありますか? ぜひ以下で共有してください。