首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >等效变化差异结果的不一致性

等效变化差异结果的不一致性
EN

Stack Overflow用户
提问于 2015-09-07 08:33:23
回答 1查看 61关注 0票数 3

请考虑以下文件和差异结果:

a1.txt

代码语言:javascript
运行
复制
a
b
My name is Ian

a2.txt

代码语言:javascript
运行
复制
a
a
b
My name is John

运行diff --side-by-side --suppress-common-lines a1.txt a2.txt会产生:

代码语言:javascript
运行
复制
                             >  a
My name is Ian               |  My name is John

它正确地声明a是在a2.txt中添加的,My name is Ian更改为My name is John

但是,如果从两个文件中删除b,则生成的结果是不同的:

b1.txt

代码语言:javascript
运行
复制
a
My name is Ian

b2.txt

代码语言:javascript
运行
复制
a
a
My name is John

运行diff --side-by-side --suppress-common-lines b1.txt b2.txt会产生:

代码语言:javascript
运行
复制
My name is Ian                |  a
                              >  My name is John

这说明My name is Ian行更改为aMy name is John被添加到b2.txt中。

尽管第二次比较的结果在技术上是有效的,但a1.txta2.txt之间的差异相当于b1.txtb2.txt的差异,那么为什么结果不相等呢?

我能做些什么,使第二个比较产生与第一个输出相同的结果吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-07 09:01:11

您观察到的两个示例之间的差异是正常的;它只是与您对diff所做的事情的期望相冲突。实用程序解决了最长公共子序列问题,使用线作为单位/原子。

..。a1.txta2.txt的区别相当于b1.txtb2.txt的区别,那么为什么结果不相等呢?

在这里,两个示例中最长的公共子序列是不同的,粗略地说,不要以相同的方式“排列”。在第一个例子中,您有

代码语言:javascript
运行
复制
# a1.txt              # a2.txt                   # line in common?
                      a                          n
a                     a                          y 
b                     b                          y
My name is Ian        My name is John            n

然而,在第二个例子中,

代码语言:javascript
运行
复制
# b1.txt              # b2.txt                   # line in common?
a                     a                          y
My name is Ian        a                          n
                      My name is John            n

因此,就diff而言,这两对文件之间的差异并不相等。diff没有内存,您为获取b[12].txt文件所做的一切就是从每个a[12].txt文件中删除b行。它所看到的是,最长的公共子序列现在只包含一个包含a的行,并由此推断出两个b[12].txt文件之间的区别。

我能做些什么,使第二个比较产生与第一个输出相同的结果吗?

除了使用不同的diff算法(或实现您自己的算法)之外,我不这么认为。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32434272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档