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