首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“差异”如何决定差异是变化(即替换)还是加减的组合?

“差异”如何决定差异是变化(即替换)还是加减的组合?
EN

Unix & Linux用户
提问于 2018-11-09 21:10:37
回答 1查看 178关注 0票数 -2

我想知道diff是如何决定差异是更改(即替换)还是添加和删除的组合?

我能从散装手册找到的最好的是

“‘fct”将第一个文件范围f中的行替换为第二个文件范围t中的行。这就像一个合并的添加和删除,但更紧凑。例如,‘5,7c8,10’意味着将文件1的第5-7行更改为文件2的第8-10行;或者,如果将文件2更改为文件1,则将文件2的第8-10行更改为文件1的第5-7行。

例如,我有两个文件,每个文件有四行

代码语言:javascript
运行
复制
$ paste f2 f3
0   1
1   2
3   3
5   6

我把他们分了

代码语言:javascript
运行
复制
$ diff f2 f3
1d0
< 0
2a2
> 2
4c4
< 5
---
> 6

为什么是

代码语言:javascript
运行
复制
1d0
< 0
2a2
> 2

代码语言:javascript
运行
复制
1,2c1,2
< 0
< 1
---
> 1
> 2

而不是?

我给出的替代方案和diff输出都以3作为公共行,但我的备选方案将公共行之前的不同行视为c (即替换),而diff输出则将它们视为删除和添加的组合。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-11-10 17:24:55

两个文件之间的LCS是1 3,而不是3。所以这里有三块,而不是两个文件之间的两块。

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

https://unix.stackexchange.com/questions/480848

复制
相关文章

相似问题

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