Linux对比文本文件


1. Without GUI

1.1 diff

diff可以比较2个文件夹

语法:diff [选项] file1 file2 说明:该命令告诉用户,为了使两个文件file1和file2一致,需要修改它们的哪些行。如果用“- ”表示file1或fiie2,则表示标准输入。如果file1或file2是目录,那么diff将使用该目录中的同名文件进行比较。例如: diff /usr/xu mine

选项的含义如下:
- b 忽略行尾的空格,而字符串中的一个或多个空格符都视为相等。
如How are you与How are you被视为相同的字符串。
- c 采用上下文输出格式(提供三行上下文)。
- C n 采用上下文输出格式(提供n行上下文)。
- e 产生一个合法的ed脚本作为输出。
- r 当file1和file2是目录时,递归作用到各文件和目录上。

1.2 comm

语法:comm [- 123 ] file1 file2 说明:该命令是对两个已经排好序的文件进行比较。其中file1和file2是已排序的文件。comm读取这两个文件,然后生成三列输出:仅在file1中出现的行;仅在file2中出现的行;在两个文件中都存在的行。如果文件名用“- ”,则表示从标准输入读取。 comm -1 不显示只出现在第一个文件的行。 comm -2 不显示只出现在第二个文件的行。 comm -3 不显示同时出现在两个文件的行。 comm file1 file2 显示三列,第一列代表只出现在file1的行,第二列代表只出现在file2的行,第三列代表俩个文件同时出现的行 comm -12 显示两个文件同时出现的行 也就是交集 comm -13 显示只出现在第二个文件的行 comm -23 显示只出现在第一个文件的行

1.3 colordiff

在 Linux 下,使用 diff 命令可以对文件进行比较,从而了解其差异。不过,diff 命令的输出结果以同色显示,对于这种差异的表现可能不够强烈。好在我们还可以通过 ColorDiff 来加以改善。ColorDiff 是一个 Perl 脚本,它通过不同的颜色来高亮显示 diff 命令的输出结果,非常显眼。

ColorDiff 适用于 Linux 及 BSD 系统,目前已被包含到 Debian、Ubuntu、Gentoo、Arch Linux、Fedora、FreeBSD 等发行版中。你可以从中直接加以安装。

\

2. With GUI

由于没有GUI,diff和comm不是那么好用,下面推荐几个带GUI的软件。

2.1 diffuse

我一般都是用这个,很好用。也可以直接把内容粘贴到diffuse版面中,直接进行对比。

可视化比较,非常直观。
支持两相比较和三相比较。这就是说,使用 Diffuse 你可以同时比较两个或三个文本文件。
支持常见的版本控制工具,包括 CVS、subversion、git、mercurial 等。你可以通过 Diffuse 直接从版本控制系统获取源代码,以便对其进行比较和合并。
支持像 C++、Python、Java、XML 等语言的语法高亮显示。
能够直接在 Diffuse 中编辑文件。
支持 UTF-8 编码。
可以使用快捷键轻松导航。

\

2.2 KDiff3

KDiff3 是一款用来对文件或目录进行比较/合并的工具,在比较时它可以同时针对两个或者三个文件/目录而进行。通过比较,它将文件/目录的差异按行加以显示。同时,KDiff3 提供有自动化的合并工具,方便使用者进行有关合并的操作。

此外,KDiff3 支持 Unicode 编码,集成了编辑器,可以自动合并版本控制历史。虽然 KDiff3 主要为 KDE 桌面而开发,但是仍然可以运行于其他的 Linux 环境。甚至对于 Windows、Mac OS X,KDiff3 也有相应的版本

3. 参考文献

[1] Linux文件比较命令 http://baike.baidu.com/link?url=Q_9aovjvvYNNbDY09eUlz5R0kBd1RC17GmmZ9YRJFth6naLrptqmna15V3qzXrrP

[2] Linux下文件差异比较工具 http://blog.csdn.net/baozi1159/article/details/7572819

相关内容