Linux 终端中比较两个文件

文件比较在 Linux 中起着重要的作用,特别是对于程序员和 Linux 系统管理员。 例如,如果我们想找到两个源代码文件之间的差异来开发补丁,那么我们需要一个文件比较工具来简化这个过程。 Linux 中有几个命令行工具可用于比较两个文件。 其中,diff 是一个非常流行的命令行实用程序,它提供了各种选项来获取两个文件之间的差异。

在这篇文章中,我们将向我们展示 Linux 终端中比较两个文件。

先决条件

  • 在 云平台上运行 Linux 的服务器
  • 在我们的服务器上配置的 root 密码

创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择任何具有至少 1GB RAM 的 Linux 操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

基本语法

diff 命令的基本语法如下所示:

diff [OPTION] FILES

每个选项的简要说明如下所示:

  • -s 两个文件相同时报告
  • -c 在上下文模式下显示输出
  • -q 仅在文件不同时报告
  • -y 在两列中显示差异输出
  • -r 递归比较任何子目录
  • -i 忽略文件内容的大小写差异
  • -w 忽略所有空格
  • –ignore-file-name-case 比较文件名时忽略大小写
  • –no-ignore-file-name-case 比较文件名时考虑一种情况

在 Linux 中创建文件

要在 Linux 中执行文件比较,我们需要在系统中创建一些文件。

让我们创建一个名为 file1.txt 的第一个文件:

nano file1.txt

添加以下内容:

11 12 13 14 15 16 17 18 19
eveven twelve thirteen fourteen fifteen sixteen seventeen eighteen ninteen
In this file, we added some numbers in text and numerix form
Atlantic Cloud

让我们创建一个名为 file2.txt 的第二个文件:

nano file2.txt

添加以下内容:

10 12 3 14 8 16 7 18 19
five twelve eight fourteen fifteen nine seventeen one ninteen
In this file, we added some numbers in text and numerix form
Atlantic Cloud

让我们创建第三个名为 file3.txt 的文件,其内容类似于 file1.txt:

nano file3.txt

添加以下内容:

11 12 13 14 15 16 17 18 19
eveven twelve thirteen fourteen fifteen sixteen seventeen eighteen ninteen
In this file, we added some numbers in text and numerix form
Atlantic Cloud

打印两个文件之间的差异

至此,三个文件已准备好与 diff 命令一起实际使用。

现在,要打印名为 file1.txt 和 file2.txt 的两个文件之间的差异,请运行:

diff file1.txt file2.txt

我们将获得以下输出:

1,2c1,2
< 11 12 13 14 15 16 17 18 19
< eveven twelve thirteen fourteen fifteen sixteen seventeen eighteen ninteen --- > 10 12 3 14 8 16 7 18 19
> five twelve eight fourteen fifteen nine seventeen one ninteen

如我们所见,diff 命令省略了两个文件之间的所有相似之处,只显示了它们的不同之处。

如果要在上下文模式下显示输出,请使用 -c 选项:

diff -c file1.txt file2.txt

我们将获得以下输出:

*** file1.txt	2022-03-30 16:00:02.639907838 +0530
--- file2.txt	2022-03-30 16:00:23.588174892 +0530
***************
*** 1,4 ****
! 11 12 13 14 15 16 17 18 19
! eveven twelve thirteen fourteen fifteen sixteen seventeen eighteen ninteen
  In this file, we added some numbers in text and numerix form
  Atlantic Cloud
--- 1,4 ----
! 10 12 3 14 8 16 7 18 19
! five twelve eight fourteen fifteen nine seventeen one ninteen
  In this file, we added some numbers in text and numerix form
  Atlantic Cloud

使用 diff 命令查找相似文件

我们可以在 diff 命令中使用 -s 标志来检查两个文件是否相似。

运行以下命令比较 file1.txt 和 file3.txt:

diff -s file1.txt file3.txt

我们应该看到以下输出:

Files file1.txt and file3.txt are identical

使用 Diff 命令查找不同的文件

我们可以在 diff 命令中使用 -q 标志来检查两个文件是否不同。

运行以下命令比较 file1.txt 和 file2.txt:

diff -q file1.txt file2.txt

我们应该看到以下输出:

Files file1.txt and file2.txt differ

在并排视图中显示输出

如果我们比较两个文件并希望在并排视图中显示文件差异,请使用 -y 选项。

diff -y file1.txt file2.txt

我们应该看到以下输出:

11 12 13 14 15 16 17 18 19				      |	10 12 3 14 8 16 7 18 19
eveven twelve thirteen fourteen fifteen sixteen seventeen eig |	five twelve eight fourteen fifteen nine seventeen one ninteen
In this file, we added some numbers in text and numerix form	In this file, we added some numbers in text and numerix form
Atlantic Cloud							Atlantic Cloud

如果我们想忽略上述输出中两个文件之间的相似性,请运行以下命令:

diff -y --suppress-common-lines file1.txt file2.txt

我们应该看到以下输出:

11 12 13 14 15 16 17 18 19				      |	10 12 3 14 8 16 7 18 19
eveven twelve thirteen fourteen fifteen sixteen seventeen eig |	five twelve eight fourteen fifteen nine seventeen one ninteen

本文记录了, Linux 中使用 diff 命令比较两个文件。 我们还演示了几个用例来解释不同的条件下使用 diff 命令。 在 的 VPS 主机上试一试!

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论