只复制差异(kdiff,winmerge,任何差异工具)

时间:2015-02-27 12:48:28

标签: comparison compare diff winmerge file-diffs

是否有可能只复制两个文件的差异?就像在winmerge中一样,但是,我找不到这个选项enter image description here

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

6 个答案:

答案 0 :(得分:11)

有一款名为 DiffMerge 的免费应用。

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

Difference with content

Difference only

答案 1 :(得分:11)

WinMerge有一种内置且简单的方法来生成这样的" diff only"文件,他们称之为"补丁"。

点击"工具",然后点击"生成修补程序...",然后输入您要存储结果的位置:

enter image description here

您将获得(例如)文件

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

使用the standard, compact way of representing diff并且易于操作。

答案 2 :(得分:2)

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

答案 3 :(得分:2)

以下是在WinMerge中执行此操作的方法:

  1. 禁用任何上下文行: [查看]&gt; [上下文]&gt; [0行]。
  2. 选择感兴趣的窗格:单击窗格。
  3. 选择所有文字:[编辑]&gt; [全选]或[Ctrl] + [a]。
  4. 复制选择:[编辑]&gt; [复制]或[Ctrl] + [c]。

答案 4 :(得分:1)

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

命令行中的diff工具将输出,使用grep管道传输并执行上述正则表达式之一。

答案 5 :(得分:-1)

WinMerge提供“Copy Left to ...”或“Copy right to ...”,它只会将差异复制到所选的文件夹中。