【问题标题】:Copy only difference (kdiff, winmerge, any diff like tool)仅复制差异(kdiff、winmerge、任何类似工具的差异)
【发布时间】:2018-03-09 23:34:25
【问题描述】:

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

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

【问题讨论】:

    标签: comparison compare diff winmerge file-diffs


    【解决方案1】:

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

    点击“Tool”,然后点击“Generate Patch...”,输入你想要存储结果的位置:

    您将获得(例如)该文件

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

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

    【讨论】:

    • 很好的答案,它帮助了我。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            【解决方案6】:

            WinMerge 提供“将左侧复制到...”或“从右侧复制到...”,仅将差异复制到所选文件夹。

            【讨论】:

            • 那应该在哪里?
            • 比较 2 个相似的目录.... 然后右键单击文件列表,您会看到“从左侧复制到...”的东西
            • 好的,那应该如何解决 OP 的问题?我相信您将在文件夹之间复制文件,而不是比较它们的文本内容。
            • 对不起..我是根据OP标题..没有阅读实际内容。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-04-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-11-13
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多