在 Linux 中的 diff 指令可以比較兩個文字檔案之間的差異,通常用於比較檔案新舊版本之間的變動處、或是產生 patch 檔(patch 指令所使用的輸入檔)。

傳統上 diff 的輸出是沒有顏色的,如果在比較兩個檔案的差異時(是人在看的,不是給電腦看的),可以透過 colordiff 指令把原本 diff 的輸出加上顏色,讓輸出更容易閱讀。

colordiff 這個工具程式已經在各種常用的 Linux 與 FreeBSD 等平台中被測試過了,至於其他的平台基本上應該也可以使用。

Step 1
安裝 colordiff,如果是 Ubuntu 或 Debian Linux,可使用 apt-get 安裝:

sudo apt-get install colordiff

如果是 CentOS 或 Fedora 等,可用 yum 安裝:

yum install colordiff

Step 2
基本上 colordiff 與傳統的 diff 是用法差不多的:

colordiff file1 file2

除此之外,也可以配合傳統的 diff 來使用:

diff -u file1 file2 | colordiff

如果輸很長,可以使用 less 指令加上 -r 或是 -R 參數保留 ANSI 跳脫字元(escape sequences):

diff -u file1 file2 | colordiff | less -R


使用 colordiff 之後,輸出就有顏色了:

use-colordiff-command

除了 colordiff 之外,也有一些其他的指令可以將 diff 的輸出加上顏色,例如使用 remark

diff file1 file2 | remark /usr/share/regex-markup/diff

或是使用 grc 指令:

grc diff file1 file2

參考資料:nixCraft