diff(colordiff)の基本・使い方|macOS・UNIX・Linux
colordiffをインストールしよう
colordiffは、diffの出力を色分けして表示します。これにより、差分の部分(追加、削除、変更)が視覚的に分かりやすくなります。colordiffは、基本的にはdiffコマンドのラッパー(フロントエンド)です。内部でdiffを実行し、その出力に色を付けて表示しているため、機能やオプションはdiffと同じです。macOSであれば brew で colordiff をインストールできます。
zsh
brew install colordiff
diff(colordiff)コマンドの便利なオプション
ローカルファイル同士の比較
ローカルファイル同士の比較は通常のdiffと同じコマンドを使用し、colordiffを代わりに使うだけです。
bash
colordiff file1.txt file2.txt
最も一般的な形式で表示
-u (Unified format) オプションで差分を統合形式で表示します。
zsh
colordiff -u file1.txt file2.txt
再帰的に比較
-r (Recursive) オプションでディレクトリ間で再帰的に比較を行います。
zsh
colordiff -ur dir1 dir2
空白の違いを無視して比較
-w (Ignore whitespace) オプションで空白の違いを無視します。
zsh
colordiff -uw file1.txt file2.txt
大文字・小文字の違いを無視して比較
-i (Ignore case) オプションで大文字と小文字の違いを無視します。
zsh
colordiff -ui file1.txt file2.txt
空行の違いを無視して比較
-B (Ignore blank lines) オプションで空行の違いを無視します。
zsh
colordiff -uB file1.txt file2.txt
ディレクトリ内のファイルを再起的に比較
ディレクトリ内のファイル群を一括で比較できます。
bash
colordiff -r ディレクトリ1 ディレクトリ2
このコマンドは、ディレクトリ1 と ディレクトリ2 内のファイルを再帰的に比較し、差分を表示します。diff はファイル名が一致するファイル同士を比較し、異なる部分を表示します。
リモートファイルとの比較
リモートファイルとローカルファイルを比較するには、sshを使ってリモートファイルを取得し、diffまたはcolordiffで比較します。
以下の方法が一般的です。
方法1: scpを使用する
リモートファイルを一時的にローカルにコピーしてから比較する方法です。
bash
scp user@remote_host:/path/to/remote_file.txt /tmp/remote_file.txt
colordiff /tmp/remote_file.txt local_file.txt
方法2: sshを使って直接比較
sshを使用してリモートファイルの内容を取得し、diffで比較することもできます。bash
diff <(ssh user@remote_host 'cat /path/to/remote_file.txt') local_file.txt | colordiff
この方法であれば、リモートファイルを一時的にローカルに保存せずに直接比較できます。
関連記事
アイデアノート > macOSで使えるシェル