本指南将向您展示如何使用Linux比较两个文件并将其差异输出到屏幕或文件。
您不需要安装任何特殊软件来比较使用Linux的文件,但您需要知道如何打开终端窗口 。
正如链接指南所示,使用Linux打开终端窗口的方法有很多。 最简单的是同时按下CTRL,ALT和T键。
创建要比较的文件
为了遵循本指南,请创建一个名为“file1”的文件并输入以下文本:
10个绿色的瓶子站在墙上
10个绿色的瓶子站在墙上
如果一个绿色瓶子意外掉落
将有9个绿色的瓶子站在墙上
您可以按照以下说明创建文件:
- 输入以下命令打开文件:nano file1
- 将文本输入到nano编辑器中
- 按下CTRL和O保存文件
- 按下CTRL和X以退出文件
现在创建另一个名为“file2”的文件并输入以下文本:
10个绿色的瓶子站在墙上
如果1个绿色瓶子意外掉落
会有9个绿色的瓶子站在墙上
您可以按照以下说明创建文件:
- 输入以下命令打开文件:nano file2
- 将文本输入到nano编辑器中
- 按下CTRL和O保存文件
- 按下CTRL和X以退出文件
如何使用Linux比较两个文件
在Linux中用于显示2个文件之间差异的命令称为diff命令。
diff命令的最简单形式如下所示:
diff file1 file2
如果文件相同,那么在使用此命令时将不会有输出,但是,由于存在差异,您将看到类似于以下内容的输出:
2,4c2,3
<10个绿色瓶子站在墙上
<如果一个绿色瓶子意外掉落
<将有9个绿色的瓶子站在墙上
...
>如果1个绿色瓶子意外掉落
>有9个绿色的瓶子站在墙上
最初,输出可能看起来很混乱,但一旦你理解了这个术语,这是相当合理的。
用你自己的眼睛可以看到两个文件之间的差异如下:
- 第二个文件只有三行,而第一个文件有四个。
- 第二个文件在第三行说“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 <显示已被删除的行,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命令 。 这比较文件逐字节。