Unix / Linux 命令行上的 diff 命令着色输出

diff 命令逐行比较文件并显示两个文件之间的更改列表。 您可以使用 diff 命令:

  1. 查看文件的一个版本之间的更改。
  2. 比较两个配置或程序文件。
  3. 创建一个可以与 Linux/Unix 程序补丁一起应用的补丁文件。

Unix / Linux 命令行上的 diff 命令着色输出

colordiff 是 diff 的包装器,产生与 diff 相同的输出,但在命令行中突出显示彩色语法以提高可读性。 colordiff 已经在各种版本的 Linux 和 OpenBSD 下进行了测试,但应该可以广泛地移植到其他系统。

如何安装 colordiff

为许多 Linux 发行版、类 UNIX 系统和 *BSD 发行版和其他操作系统打包的 colordiff 命令。 让我们看看如何安装 colordiff 命令。

在 CentOS/RHEL 上安装 colordiff

首先,在 RHEL6/CentOS6 上打开 EPEL repo(查看如何在 CentOS/RHEL 7 上打开 EPEL repo)并输入以下 yum 命令来安装 colordiff 实用程序:
# yum install colordiff

Fedora Linux 安装 colordiff

键入以下 dnf 命令:
$ sudo dnf install colordiff

Debian/Ubuntu/Mint Linux 安装 colordiff 以着色 diff 的输出

Debian / Ubuntu / Mint Linux 用户键入以下 apt 命令或 apt-get 命令实用程序:
$ sudo apt-get install colordiff

OpenBSD 安装 colordiff

只需键入 pkg_add 命令:
# pkg_add -v colordiff

示例输出:

Update candidates: quirks-2.414 -> quirks-2.414
quirks-2.414 signed on 2018-03-28T14:24:37Z
colordiff-1.0.18: ok
Extracted 31057 from 31305

FreeBSD 安装 colordiff

运行 pkg 命令,如下所示:
$ sudo pkg install colordiff

示例输出:

Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):
 
New packages to be INSTALLED:
	colordiff: 1.0.18
 
Number of packages to be installed: 1
 
14 KiB to be downloaded.
 
Proceed with this action? [y/N]: y
[rsnapshot] [1/1] Fetching colordiff-1.0.18.txz: 100%   14 KiB  14.7kB/s    00:01    
Checking integrity... done (0 conflicting)
[rsnapshot] [1/1] Installing colordiff-1.0.18...
[rsnapshot] [1/1] Extracting colordiff-1.0.18: 100%

macOS 安装 colordiff

首先,在 macOS 上安装 Homebrew,然后键入以下 brew 命令:
$ brew install colordiff
macos Unix install colordiff command using brew

如何使用 colordiff 命令?

语法是:
colordiff file1 file2

或者
diff -u file1 file2 | colordiff

您可以使用 -R 或 -r 选项将输出传递给 less 命令,以保留颜色转义序列,否则显示不正确或被 less 丢弃:
diff -u file1 file2 | colordiff | less -R

示例输出:

diff Command Colorize Output On the Unix / Linux

colordiff 命令的替代品

使用备注命令如下:
diff file1 file2 | remark /usr/share/regex-markup/diff

您还可以使用 grc 命令:
grc diff file1 file2

GNU/Linux 用户可以使用以下语法对输出进行着色,而无需安装 colordiff:
diff --color file1 file2
diff --color resolv.conf resolv.conf.saved

gnu linux diff with --color option

另一种选择是使用 vimdiff 命令使用 Vim 编辑文件的两个或多个版本并显示差异:
vimdiff file1 file2
viff resolv.conf resolv.conf.saved

https://www.cyberciti.biz/media/new/cms/2012/11/vimdiff-show-diff-in-colors-using-vim-text-editor.mp4?_=1

结论

您刚刚学习了如何在 Unix / Linux、macOS 和 *BSD 类系统上使用 diff 命令为输出着色。 使用以下 人命令 阅读手册页以获取有关 colordiff 和 diff 命令的信息的语法:
man diff
man colordiff

您可以获取 colordiff 的源代码 从项目回购.