14

是否有可能只复制两个文件的差异?就像在 winmerge 中一样,但是,我找不到这个选项在此处输入图像描述

就像在这个屏幕上一样——我只想复制“黄色部分”。当然我可以手动完成,但在大文件中它不太好笑:-)

4

6 回答 6

21

WinMerge有一种内置且简单的方法来生成此类“仅差异”文件,它们称为“补丁”。

单击“工具”,然后单击“生成补丁...”,然后输入要存储结果的位置:

在此处输入图像描述

您将获得(对于您的示例)该文件

4,8c4,8
< HELLO WORLD
< HELLO WORLD
< HELLO WORLD
< HELLO WORLD
< HELLO WORLD
---
> 
> 
> 
> 
> 

它使用标准、紧凑的方式来表示差异并且易于操作。

于 2018-02-20T05:29:43.867 回答
11

有一个名为DiffMerge的免费应用程序。

注意:选项“仅显示差异”将被禁用,直到您切换到标记为引用视图(已加载文件)的底部选项卡。之后,您应该能够使用仅差异视图。

内容差异

仅差异

于 2015-06-16T04:57:36.503 回答
10

以下是您在 WinMerge 中的操作方式:

  1. 禁用任何上下文行:[View] > [Context] > [0 Lines]。
  2. 选择感兴趣的窗格:单击窗格。
  3. 选择所有文本:[编辑] > [全选] 或 [Ctrl]+[a]。
  4. 复制选择:[编辑] > [复制] 或 [Ctrl]+[c]。
于 2018-03-09T15:34:25.900 回答
2

在 winmerge 中有一个非常好的功能 - 工具中您可以通过 Tools-> Raport 在 html 中生成 raport。在该操作之后,您可以解析生成的 html- 并以这种方式仅获得差异(但也许这不是最简单的解决方案)

于 2015-03-02T11:06:17.350 回答
1

大多数差异工具都有一个补丁生成功能,可以在剪贴板中工作,这主要是您想要的,因为您只会在左侧和右侧获得更改的文本(如果您删除上下文行)。如果您只想要一侧的那些,您可以轻松地过滤关于第一个字符的补丁(删除所有行,使用编辑器,匹配诸如^[+>].*$保留删除的行或^[-<].*$保留添加的行)。

grep命令行中的 diff 工具将仅输出该内容,并使用上述正则表达式之一进行管道传输,您就完成了。

于 2015-03-01T19:02:27.427 回答
-1

WinMerge 提供“向左复制到...”或“向右复制到...”,它们只会将差异复制到选择的文件夹中。

于 2015-10-08T17:36:07.520 回答