社区编辑申请
注册/登录
详解 Linux 中的 diff 命令及示例
系统 Linux
在这篇文章中,我们将向您展示如何在 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 的第一个文件:

添加以下内容:

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 numeric form
www.LinuxMI.com

再创建一个名为 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 numeric form
www.LinuxMI.com

最后让我们创建第三个名为 file3.txt 的文件,其内容类似于 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 numeric form
www.LinuxMI.com

打印两个文件之间的差异

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

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
? 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选项:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
? diff -c file1.txt file2.txt

您将获得以下输出:

*** file1.txt  2022-05-07 22:37:23.371594485 +0800
--- file2.txt 2022-05-07 22:37:15.699594796 +0800
***************
*** 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 numeric form
www.LinuxMI.com
--- 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 numeric form
www.LinuxMI.com

使用 diff 命令查找相似文件

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

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
? diff -s file1.txt file3.txt

您应该看到以下输出:

文件 file1.txt 和 file3.txt 相同

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

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

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
? diff -q file1.txt file2.txt

您应该看到以下输出:

文件 file1.txt 和 file2.txt 不同

在并排视图中显示输出

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                                                                  
? diff -y file1.txt file2.txt

您应该看到以下输出:

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                                                                  
? diff -y --suppress-common-lines file1.txt file2.txt

您应该看到以下输出:

结论

在这篇文章中,我们解释了如何在 Linux 中使用 diff 命令比较两个文件。我们还演示了几个用例来解释如何在不同的条件下使用 diff 命令。

责任编辑:庞桂玉 来源: Linux公社
相关推荐

2022-04-02 20:45:04

Hi3516开发板操作系统鸿蒙

2022-04-14 10:10:59

Nginx开源Linux

2022-04-15 14:31:02

鸿蒙操作系统

2022-04-25 08:45:38

Linux 发行版旧计算机PC

2022-04-06 13:55:22

DockerLinux

2022-05-16 13:37:12

Sysrv僵尸网络微软

2022-03-21 09:52:44

LinuxSystemd日志

2022-04-13 15:10:40

Linuxvmstat分析信息

2022-03-30 09:32:32

BashtestLinux

2022-05-14 08:05:18

Linux内存管理

2022-04-14 10:22:30

NginxLinux

2022-04-20 10:43:24

Linux命令

2022-05-09 07:08:14

LinuxBashShell

2022-03-25 09:39:50

LinuxLinux top

2022-04-06 06:35:58

进程命令CPU

2022-04-12 11:20:11

C 语言Linux编程

2022-04-24 16:00:15

LinuxLinux命令ls命令

2022-04-26 06:43:12

文档TCPLinux

2022-04-22 11:16:35

Linux工具命令

2022-04-15 08:07:21

ReactDiff算法

同话题下的热门内容

除 Windows 11 外,微软刚发布的 KB5013942 也同样会导致 Windows 10 出错NVIDIA 终于发布开源 Linux GPU 内核模块为何 NVidia 的开源驱动程序对 Linux 如此重要?微软发布 Windows 11 Dev 预览版 25120:带来全新交互式桌面内容,支持 ARM64 设备Fedora 36 通过桌面大修吸引开发者,但它能取悦 Linux 之父吗?万字多图,搞懂 Nginx 高性能网络工作原理!80%的 Linux 使用者都不懂的内存问题Ubuntu 22.04 中安装最新 Wine 以运行 Windows 应用程序

编辑推荐

你应该知道的八款国产操作系统为什么你可能想要略过Ubuntu 17.04?HarmonyOS 2.0鸿蒙第二期开发者Beta公测申请指南让后端开发情何以堪?前端程序猿薪资大曝光谷歌“断供”华为!中国真写不出操作系统?
我收藏的内容
点赞
收藏

51CTO技术栈公众号

网站地图 申博百家乐 申博游戏注册 申博138开户 ag真人娱乐
申博代理有限公司登入 申博在线娱乐登入网址 菲律宾太阳娱乐官网登入 申博娱乐开户
申博138开户 太阳城网址 申博太阳城 ag国际馆
申博会员登入 申博138开户 澳门大三巴赌场 申博游戏平台
真钱百家乐 申博网址 申博客户端下载 申博娱乐手机登入