比较Linux中的两个文件-使用diff,vimdiff和colordiff

时间:2020-02-23 14:37:50  来源:igfitidea点击:

Linux为您提供了多个选项来比较两个文件。
比较两个文件的最流行命令是diff。
在本教程中,我们将介绍diff命令和一些其他选项,可用于比较Linux中的两个文件。

让我们创建两个文件,以在整个教程中用作示例。

文件1的文字:

Welcome to the best source for learning Linux.
 How are you doing?

文件2的文字:

Welcome to Linux For Devices!
How are you doing?

Diff命令比较Linux中的两个文件

当比较两个文件时,Diff命令是最常用的命令。
该名称是"差异"的缩写。
输出告诉您更改第一个文件以使其与第二个文件匹配所需执行的步骤。

使用diff命令的语法是:

diff [option] [file 1] [file 2]

让我们看看diff命令的作用。

diff [file 1] [file 2]

输出仅显示不匹配的行。
这些行按照命令中提到的文件顺序显示。

让我们尝试了解输出。

您可以看到输出以" 1c1"开头。
格式为[range] [abc] [range]。

其中第一范围字段属于第一文件,第二范围字段属于第二文件。

中间的字母可以是以下三个字母之一。

  • a:添加(add)
  • c:变更(change)
  • d:删除(delete)

在我们的示例中," 1c1"表示您需要更改第一个文件的第一行,以确保两个文件同步到第二个文件的第一行。

3d2意味着您需要删除第一个文件的第三行,以确保两个文件在第二个文件的第二行同步。

上下文模式(diff -c)

要在上下文模式下查看两个文件之间的差异,请使用-c标志以及diff命令。

diff -c [file 1] [file 2]

让我们尝试了解输出。

输出以有关文件的元信息开始。
这是诸如文件名,创建日期和时间以及权限之类的信息。

下一行是*** 1,3 。
该行包含比较期间要考虑的从和到行号。

这是文件1中的文本。
其中您可以在该行之前看到某些符号。
让我们看看这些符号的含义。

  • +:第一个文件中缺少该行。
    您可以在第一个文件中添加它,也可以从第二个文件中删除它。

  • –:第二个文件中缺少该行。
    您可以在第二个文件中添加它,也可以从第一个文件中删除它。

  • ! :需要更改该行以使其在两行中都匹配。

对于第二个文件重复相同的信息。

统一格式(diff -u)

统一格式是上下文模式的改进版本。
语法如下:

diff -u [file 1] [file 2]

您可以看到它以简洁的方式传达了相同的信息。

Vimdiff比较Linux中的两个文件

比较两个文件的另一种方法是Vimdiff。
仅当您的系统上具有Vim编辑器时,此方法才有效。

使用vimdiff比较两个文件的语法是:

vimdiff [file 1] [file 2] 

维姆迪夫

这就是输出的样子。
它将在Vim编辑器中并排打开两个文件。
它还突出显示了两个文件中不匹配的部分。
如果您习惯使用Vim编辑器,则应该使用vimdiff。

色差

Perl脚本colordiff是" diff"的包装,并产生相同的输出,但突出显示了" syntax"。
它还为您提供了自定义颜色的选项。

要在系统上安装colordiff,请使用apt命令:

sudo apt install colordiff

此命令将在您的系统上安装colordiff。
要使用colodiff比较两个文件,请使用:

colordiff [file 1] [file 2] 

您可以看到输出与上面diff命令中产生的输出相同。
唯一的区别是输出中的颜色。