如何使用Linux比较两个文本文件

本指南将向您展示如何使用Linux比较两个文件并将其差异输出到屏幕或文件。

您不需要安装任何特殊软件来比较使用Linux的文件,但您需要知道如何打开终端窗口

正如链接指南所示,使用Linux打开终端窗口的方法有很多。 最简单的是同时按下CTRL,ALT和T键。

创建要比较的文件

为了遵循本指南,请创建一个名为“file1”的文件并输入以下文本:

10个绿色的瓶子站在墙上

10个绿色的瓶子站在墙上

如果一个绿色瓶子意外掉落

将有9个绿色的瓶子站在墙上

您可以按照以下说明创建文件:

  1. 输入以下命令打开文件:nano file1
  2. 将文本输入到nano编辑器中
  3. 按下CTRL和O保存文件
  4. 按下CTRL和X以退出文件

现在创建另一个名为“file2”的文件并输入以下文本:

10个绿色的瓶子站在墙上

如果1个绿色瓶子意外掉落

会有9个绿色的瓶子站在墙上

您可以按照以下说明创建文件:

  1. 输入以下命令打开文件:nano file2
  2. 将文本输入到nano编辑器中
  3. 按下CTRL和O保存文件
  4. 按下CTRL和X以退出文件

如何使用Linux比较两个文件

在Linux中用于显示2个文件之间差异的命令称为diff命令。

diff命令的最简单形式如下所示:

diff file1 file2

如果文件相同,那么在使用此命令时将不会有输出,但是,由于存在差异,您将看到类似于以下内容的输出:

2,4c2,3

<10个绿色瓶子站在墙上

<如果一个绿色瓶子意外掉落

<将有9个绿色的瓶子站在墙上

...

>如果1个绿色瓶子意外掉落

>有9个绿色的瓶子站在墙上

最初,输出可能看起来很混乱,但一旦你理解了这个术语,这是相当合理的。

用你自己的眼睛可以看到两个文件之间的差异如下:

diff命令的输出显示在第一个文件的第2行和第4行之间以及第二个文件的第2行和第3行之间存在差异。

然后它会列出第一个文件中从2到4的行,然后是第二个文件中的2个不同的行。

如何显示文件是否不同

如果您只想知道文件是否有所不同,并且您对哪些行不同感兴趣,则可以运行以下命令:

diff -q file1 file2

如果文件不同,将显示以下内容:

文件file1和file2不同

如果文件相同,则不显示任何内容。

如果文件相同,如何显示消息

当你运行一个命令时,你想知道它的工作是否正常,所以当你运行diff命令时你想要显示一条消息,而不管这些文件是相同的还是不同的

为了使用diff命令来实现这个要求,你可以使用下面的命令:

diff -s file1 file2

现在,如果文件相同,您将收到以下消息:

文件file1和file2是相同的

如何产生差异并排

如果存在很多差异,那么它可能很快就会混淆两个文件之间的实际差异。

您可以更改diff命令的输出,以便将结果并排显示。 为了做到这一点,运行以下命令:

diff -y file1 file2

该文件的输出使用| 符号显示两行之间的差异,a <显示已被删除的行,a>显示已添加的行。

有趣的是,如果您使用我们的演示文件运行该命令,则所有行都将显示为不同,除了文件2的最后一行,它将显示为已被删除。

限制列宽

当并排比较两个文件时,如果文件中有很多文本列,可能很难阅读。

要限制许多列,请使用以下命令:

diff --width = 5文件file2

如何在比较文件时忽略大小写差异

如果您想比较两个文件,但不关心这两个文件的大小写是否相同,则可以使用以下命令:

diff -i file1 file2

如何忽略行尾的尾部空白

如果在比较文件时注意到负载的差异,并且差异是由行尾的空白引起的,则可以通过运行以下命令来忽略这些文件,以显示为更改:

diff -Z file1 file2

如何忽略两个文件之间的所有空白区别

如果您只对文件中的文本感兴趣,并且不关心一个文件中是否有更多空格,则可以使用以下命令:

diff -w file1 file2

如何在比较两个文件时忽略空行

如果您不关心一个文件中可能包含多余的空行,则可以使用以下命令比较这些文件:

diff -B file1 file2

概要

通过阅读diff命令的手册,您可以找到更多信息。

男人差异

diff命令可以以最简单的形式使用,只显示2个文件之间的差异,但您也可以使用它创建diff文件,作为修补策略的一部分,如本指南的Linux修补程序命令所示

您可以用来比较文件的另一个命令是本指南所示的cmp命令 。 这比较文件逐字节。