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

测试并查看您的文件是否已更新或更改

要知道的内容

  • 比较,运行:diff file1 file2.
  • 展示他们的不同之处:diff -q file1 file2
  • 展示如何与:diff -s file1 file2

本文解释如何使用Linux比较两个文件,并将文件之间的差异输出到屏幕或文件中。在Linux中,您不需要安装特殊的软件来比较文件,但您需要知道如何这样做打开终端窗口

创建要比较的文件

如果要与本指南一起进行操作,请创建两个包含相似但不同文本的文本文件。

创建第一个文件

创建一个名为file1.然后输入以下文字:

站立在墙壁上的10个绿色瓶
站立在墙壁上的10个绿色瓶
如果一个绿色瓶子不当落下
墙上有9个绿色的瓶子

要创建此文件,请按照以下说明操作:

  1. 通过键入以下命令打开文件:

    nano file1.
    终端命令:nano file1

    在Linux中打开终端窗口的最快方法是按CTRL + ALT + T同时打开钥匙。

  2. 把文本输入纳米编辑器

    纳米终端文件1
  3. 新闻CTRL + O保存文件。

  4. 新闻CTRL + X退出文件。

创建第二个文件

接下来,创建另一个名为file2.并输入以下文本:

站立在墙壁上的10个绿色瓶
如果一个绿色的瓶子不小心掉了
墙上有9个绿色的瓶子

要创建此文件,请按照以下说明操作:

  1. 通过键入以下命令打开文件:

    nano file2.
  2. 将文本键入Nano编辑器。

    Nano中的终端文件2
  3. 新闻CTRL + O保存文件。

  4. 新闻CTRL + X退出文件。

如何使用Linux比较两个文件

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

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

diff file1 file2.

如果文件相同,则使用该命令时无输出。但是,由于存在差异,输出类似如下:

2,4c2,3
10个绿色的瓶子站在墙上
<如果一个绿色的瓶子不小心掉了
<将有9个绿色瓶子站在墙上
...
>如果1个绿色瓶子应该意外落下
>有9个绿色瓶子站在墙上

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

Linux中的终端命令“diff file1 file2”

两个文件之间的差异如下:

  • 第二个文件只有三行。第一个文件有四个。
  • 第二份文件说1绿色的瓶子在第三行。第一个文件说一个绿色的瓶子
  • 第二份文件说而不是在最后一行。

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

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

如何仅显示文件是否有所不同

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

diff -q file1 file2

如果不一致,显示如下:

文件file1和file2不同

如果文件相同,则无法显示。

如果文件是一样的,如何显示消息

运行命令时,您可能需要知道它是否正常工作。您希望在运行差异命令时显示一条消息,无论文件是相同还是不同

要使用diff命令实现此要求,请使用以下命令:

diff -s file1 file2

如果文件是相同的,则会出现以下消息:

文件file1和file2是相同的

如何并排产生差异

如果存在多种差异,则可能会令于差异实际在两个文件之间的差异。您可以更改Diff命令的输出,以便结果并排显示。为此,请运行以下命令:

diff -y file1 file2

文件的输出使用|表示两条线之间的差别的符号<显示一条已被删除的线,以及>显示已附加的线路。

Linux终端命令:diff -y file1 file2

使用本文中的演示文件运行该命令时,所有行都显示出不同的不同之处在于最后一行file2.显示为删除。

限制列宽度

在将两个文件并排进行比较时,如果文件有几列文本,则很难读取。要限制列数,请使用以下命令:

Diff——width=5 file1 file2 . Diff——width=5

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

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

Diff -i file1 file2

如何在一条线结束时忽略尾随空格

如果您注意到在比较文件时的许多差异,并且差异是由行末尾的空白空间引起的,请通过运行以下命令来防止它们显示为更改:

diff -Z file1 file2

如何忽略两个文件之间的所有空格差异

如果您只对文件中的文本感兴趣,而不关心其中一个空格是否比另一个空格多,请使用以下命令:

diff -w file1 file2

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

如果你不关心一个文件可能有额外的空行,使用以下命令比较文件:

diff -B file1 file2 . diff

概括

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

人比较

Diff命令可以以其最简单的形式使用,以仅显示两个文件之间的差异。您也可以使用它来创建diff文件作为…的一部分修补策略

您可以用来比较文件的另一个命令cmp命令.它逐字节地比较文件。

此页面有用吗?