diff(colordiff)の基本・使い方|macOS・UNIX・Linux

colordiffをインストールしよう

colordiffは、diffの出力を色分けして表示します。これにより、差分の部分(追加、削除、変更)が視覚的に分かりやすくなります。colordiffは、基本的にはdiffコマンドのラッパー(フロントエンド)です。内部でdiffを実行し、その出力に色を付けて表示しているため、機能やオプションはdiffと同じです。

macOSであれば brewcolordiff をインストールできます。

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

この方法であれば、リモートファイルを一時的にローカルに保存せずに直接比較できます。

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム