村长 发表于 2020-12-5 22:34:18

【LSP】Linux下diff命令用法详解


http://cdn.u1.huluxia.com/g4/M01/59/5A/rBAAdl9to7qAUTn-AACt4WdlvYs653.jpg
我们在平时工作的时候,经常要知道两个文件之间,以及同个文件不同版本之间有何异同点。在 Windows 下,有 beyond compare 这个好用的工具,而在 Linux 下,也有很多很强大的工具,良许之前也写过一篇文章介绍:

Linux下9种优秀的代码比对工具推荐

这些比对工具其实都是基于 diff 命令,下面就详细介绍一些 diff 命令的用法。

diff 命令是一个分析文件信息的命令,可以打印出文件之间的差异。它可以逐行地比较两个文件的内容,也可以递归地比较文件夹的内容。diff 命令的输出内容可以让我们知道要使两个文件相同需要做哪些修改,这对于我们的工作很有帮助。

在开始前,我们先用文件编辑器创建两个内容相同的文件。这里我们使用的是 nano 。http://cdn.u1.huluxia.com/g4/M01/57/07/rBAAdl9raNyAY9CsAACK0y52JeQ410.png

$ nano diffsample1
输入内容:

发布

优质的

技术文章

使用 Ctrl+X 和 Y 保存并退出。

创建第二个文件:http://cdn.u1.huluxia.com/g4/M01/57/07/rBAAdl9raN2AdQUNAACQSn6JKPg469.png

$ nano diffsample2
输入同样的内容并保存退出。

需要注意的是,空格和 Tab 对两个文件是否完全相同会有影响。

使用 diff 命令查看两个文件是否有差异:

$ diff diffsample1 diffsample2
这时 diff 命令没有输出任何信息,说明这两个文件的内容是完全相同的。

现在我们对 diffsample2 做一些修改,将文章改为帖子然后保存并退出

再使用 diff 命令:

$ diff diffsample1 diffsample2
查看输出的信息:

在以上输出信息中,3c3 表示第一个文件的第三行需要被替换为第二个文件的第三行,然后为我们提示出了需要修改的内容: 技术文章 和 技术帖子

diff 命令所参考的不是第一个文件,而是第二个文件,它的输出信息有以下几种字符:

c : 表示必须做一些修改

a : 表示必须添加一些内容

d : 表示必须删除一些内容

字符前的数字表示第一个文件中的行数,字符后的内容表示第二个文件中的行数。

< 表示引用的第一个文件中的内容,而 > 表示引用的第一个文件中的内容

现在让我们交换两个文件的顺序再试试:

$ diff diffsample2 diffsample1

在交换文件顺序之后 diff 参考的文件变成了 diffsample1,提示我们将 技术帖子 修改为 技术文章 。

现在我们将 diffsample1 编辑为以下内容:

删除了第二行和第三行,再试试使用 diff 命令

$ diff diffsample2 diffsample1

现在我们可以看到,因为我们以 diffsample1 作为参考,为了使两个文件相同,我们需要删除 diffsample2 中的第二行和第三行,然后就会和 diffsample1 中的第一行内容相同。

我们再试试交换 diffsample1 和 diffsample2 的顺序:

$ diff diffsample1 diffsample2

可以看到,现在 diff 给我们的提示信息变为了在 diffsample1 中的第一行后面添加 diffsample2 中的第二行和第三行内容。

现在让我们来测试区分内容的大小写:

编辑 diffsample1 的内容为:
http://cdn.u1.huluxia.com/g4/M01/57/07/rBAAdl9raN2AIS-2AAAfapP703c023.png

编辑 diffsample1 的内容为:http://cdn.u1.huluxia.com/g4/M01/57/08/rBAAdl9raN6AZc21AAAfYmb437A098.png


两个文件中唯一的区别是第三行的大小写,再试试 diff 命令

$ diff diffsample1 diffsample2
http://cdn.u1.huluxia.com/g4/M01/57/08/rBAAdl9raN6ADxPEAAB54G_Bdjw975.png
可以看到 diff 命令找出了大小写的不同,如果我们不想检查大小写,可以使用 -i 选项。

$ diff -i diffsample1 diffsample2

yichong 发表于 2020-12-6 11:34:36

广告位,,坐下看看

千面萌萌 发表于 2020-12-7 08:33:11

看帖要回,回帖才健康,在踩踩,楼主辛苦了!

大司命 发表于 2020-12-7 15:58:13

我也是坐沙发的

梦影 发表于 2020-12-8 17:32:31

LZ帖子不给力,勉强给回复下吧

伴我多久 发表于 2020-12-9 19:55:08

我也是坐沙发的

天镜盗梦 发表于 2020-12-10 19:09:03

不错 支持下

neige 发表于 2020-12-11 19:33:47

前排,哇咔咔

千百渡 发表于 2020-12-12 13:43:48

看看村长这是什么东东

68079330 发表于 2020-12-12 14:49:36

这么强,支持楼主,佩服
页: [1] 2
查看完整版本: 【LSP】Linux下diff命令用法详解

村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科
技平台参与或发布项目定制各种软件就来村长黑科技平台

本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件的破解分析文章、破解分析视频、补丁、注册机和注册信息,

仅限用于学习和研究软件安全的目的。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习破解分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,

请购买注册正版软件,获得正版优质服务!不允许将上述内容私自传播、销售或者其他任何非法用途!否则,产生任何法律责任,一切后果请用户自负,与本网站无关!如有侵权或非法用途请举报!请发送到邮箱:cxphj8@foxmail.com

《意见反馈》或《截图指定页面备注》发送到邮件,收到后24小时内删除,禁止用户学习使用关掉用户【学习使用权】!