在编写程序文件或者普通文本任务时,有可能需要对比两个文件或同个文件的相关差异。如linux系统中对比两个服务器之间文件,这两个文件之间的差异可以选择diff来查看,当然还有很多工具可以用来比较多种文件。在下文为大家分享几种有效的文件差异比较工具。
首先是最原始的Unix命令行工具,diff可以用来显示两个服务器之间文件的差异。Diff用法简单,华纳云在之前的文章也提及过,具体可阅读:《用 Diff 与 Meld 工具对比两个目录差异的方 法》。
除了diff和Meld外,还可以用wdiff命令。Wdiff命令属于diff命令的前段,可逐字的比较文件。这个程序在比较两段文本中的那些词存在差异及哪些段落有出现重新填充等场景中非常有用。Linux系统中安装wdiff:
$ sudo apt install wdiff [在Debian、Ubuntu 和 Mint上]
$ sudo yum install wdiff [在RHEL/CentOS/Fedora和Rocky/AlmaLinux上]
$ sudo emerge -a sys-apps/wdiff [在Gentoo Linux上]
$ sudo apk add wdiff [在Alpine Linux上]
$ sudo pacman -S wdiff [在Arch Linux上]
$ sudo zypper install wdiff [在OpenSUSE上]
并排显示两个文件,突出差异部分:
$ wdiff 文件1.txt 文件2.txt
可以阅读相关手册了解更多关于linux中wdiff的使用:
# man wdiff
还可以使用vimdiff来检查文件之间的差异。和diff实用程序相比,vimdiff的功能更现代化,可以支持用户标记最多四个版本的文件的同时展示差异。运行vimdiff时vim文本编辑器可打开2-4个文件。vim的安装:
$ sudo apt install vim [在Debian、Ubuntu 和 Mint 上]
$ sudo yum install vim [在RHEL/CentOS/Fedora和Rocky/AlmaLinux上]
$ sudo emerge -a sys-apps/vim [在Gentoo Linux上]
$ sudo apk add vim [在Alpine Linux上]
$ sudo pacman -S vim [在Arch Linux上]
$ sudo zypper install vim [在OpenSUSE上]
vim的使用方法:
$ vimdiff 文件1.txt 文件2.txt
比较三个文件:
$ vimdiff 文件1.txt 文件2.txt$ 文件3.txt
学习更多vimdiff的使用方法:
$ man vimdiff
sdiff也能完成并排比较两个文件,突出差异。把两个文件的内容在单独列显示,添加行前缀为“>”,删除行前缀显示“<”,如果是相同的行就不增加前缀。sdiff命令一般在Linux发行版标准安装中提供,如果没有提供可自行安装:
$ sudo apt install diffutils [在Debian、Ubuntu 和 Mint 上]
$ sudo yum install diffutils [在RHEL/CentOS/Fedora和Rocky/AlmaLinux上]
$ sudo emerge -a sys-apps/diffutils [在Gentoo Linux上]
$ sudo apk add diffutils [在Alpine Linux上]
$ sudo pacman -S diffutils [在Arch Linux上]
$ sudo zypper install diffutils [在OpenSUSE上]
比较两个文件并排显示差异:
$ sdiff 文件1.txt 文件2.txt
除了命令行这类比较传统的差异比较方法外,还有很多GUI差异工具可以使用,如Kompare、DiffMerge、Diffuse、XXdiff等也可以完成差异对比工作。