Skip to main content

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

#4.2 怎么样从 Windows 通过 SSH 远程 Linux (Linux 机器学习 教程教学 tutorial) (六月 2025)

#4.2 怎么样从 Windows 通过 SSH 远程 Linux (Linux 机器学习 教程教学 tutorial) (六月 2025)
Anonim

本指南将向您展示如何使用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个绿色的瓶子

最初,输出可能看起来令人困惑,但一旦理解了术语,它就相当合乎逻辑。

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

  • 第二个文件只有三行,而第一个文件有4行。
  • 第二个文件在第三行显示“1个绿色瓶子”,而第一个文件说“一个绿色瓶子”
  • 第二个文件在最后一行上写着“有”而不是“有用”

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 <表示已删除的行,而>>表示已追加的行。

有趣的是,如果您使用我们的演示文件运行命令,那么除了文件2的最后一行(将显示为已删除)之外,所有行都将显示为不同。

限制列宽

当并排比较两个文件时,如果文件有很多文本列,则很难读取。

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

diff --width = 5 file file2

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

如果要比较两个文件但不关心两个文件之间的字母大小是否相同,则可以使用以下命令:

diff -i file1 file2

如何忽略一行末尾的尾随空格

如果在比较文件时发现差异很大,并且差异是由行尾的空格引起的,则可以通过运行以下命令将这些差异省略为显示为更改:

diff -Z file1 file2

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

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

diff -w file1 file2

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

如果您不关心一个文件中是否有额外的空行,那么您可以使用以下命令比较这些文件:

diff -B file1 file2

摘要

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

男人差异

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

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