GNU的diff后结果的解释

diff[参数][文件1或目录1][文件2或目录2]

可能很多人在初次接触diff命令时,对其输出比较困惑。下面对其进行简单的解释。

1、通过使用体验能够感觉到这是一个专门针对文本文件的工具,如果该文本文件不是正常的文件文件(比如被加密),那么可能就得不到正常的人能够理解的结果了。

2、只建议一次对两个“差不多”的文件进行比较。其实matlab的右键菜单上有比较工具,svn的右键菜单上也有比较工具,在git中也有比较工具。在notepad++中也有比较工具。

其中matlab中的比较工具得到的结果非常人性化,结果看起来非常清晰。SVN的右键菜单也是可视化比较好的。还有一个工具叫做beyond compare(但是是收费的)。

如果我们脚本语言能力比较强的话,完全可以采用,比如python,进行调用diff来进行文件夹的比较。

3、比较的结果是文本形式,可能对于初学者或者非计算机专业人士并不是很直观。

有很多工具是有gui的,如果没有gui的话,人去分析比较的结果的确不是很好的。

下面就是对diff的结果进行初步解释:GNU 的 diff的使用

a=add,c=change,d=delete
举个例子:
3,5d2
表示:右边的文件(可以认为是修改后的文件)比左边的文件(可以认为是修改前的文件),进
行了delete操作。删除了原文本文件中的第3行(包含改行)到第5行(包含改行)。删除的位置
体现在修改后的文件的第2行
举个例子:
20c17
表示:右边的文件(可以认为是修改后的文件)比左边的文件(可以认为是修改前的文件),进
行了change操作。修改的是原文件的第20行,修改后的文件的位置体现为第17行。

26a24,26
表示:右边的文件(可以认为是修改后的文件)比左边的文件(可以认为是修改前的文件),进
行了add操作。修改后的文件的位置体现为第24行到第26行。

原文地址:https://www.cnblogs.com/praiseslow/p/10361994.html