比较文件并使用Notepad ++仅返回差异

时间:2015-06-28 11:04:11

标签: compare notepad++ diff

Notepad ++有一个比较插件工具,用于比较文本文件,其工作方式如下:

  

启动Notepad ++并打开要运行比较的两个文件   检查。

     

点击“插件”菜单

     

选择“比较”,然后点击“比较”。

     

插件将运行比较检查并显示两个文件   并且突出显示文本中的任何差异。

这是一个很好的功能,我已经愉快地使用了一段时间。现在,我一直在寻找一个选项,以进一步选择突出显示的不同行(例如删除未突出显示的行),反之亦然:即清除突出显示的行。

有没有直接的方法来实现这一目标?

3 个答案:

答案 0 :(得分:1)

要在记事本++(文件1-文件2)中减去两个文件,您可以按照以下步骤操作:

  1. 在文件1上添加----------------------------作为页脚(至少添加10个破折号)。这是将file1内容与file2分开的标记线。
  2. 然后将file2的内容复制到file1的末尾(在标记之后)
  3. 控件 + H
  4. 搜索:(?m)^\b(.*)\R(?=[\s\S]+-{10,}$[\s\S]+^\1\R)
  5. 替换为:(leave empty)
  6. 选择Regular expression单选按钮
  7. 全部替换
  8. 最后删除页脚和file2内容

如果file1 / file2的行数可能等于标记,则可以修改标记。在这种情况下,您将不得不调整正则表达式。

顺便说一句,您甚至可以记录一个宏来完成所有步骤(添加标记,切换到file2,将内容复制到file1,应用正则表达式,甚至在减法后清理数据),只需按一下按钮即可。

答案 1 :(得分:0)

我对此有一个肮脏解决方法。与Control+C, Alt+Tab, Control+V; Control+C, Alt+Tab, Control+V; ...相比,它节省了一些时间,但在大文件上可能不值得。对于较大的文件,您可能更喜欢使用其他工具。

通常,这在比较“单词”组时效果最好,不适用于列表中的内容(如源代码)

因此解决方法是:

  1. 可选:(取决于要比较的内容)对两个文件进行排序(这将使将来的比较更加容易)要做到这一点:编辑=>行操作=>对行进行升序排序(对两个文件都执行)
  2. 使用插件比较文件
  3. 选择一个文件并检查要保留的行。在每行之前添加一个制表符。请记住,您可以选择几行,然后按Tab键将其制成表格。 (可选)您可以在要删除的行中添加制表符
  4. 排序文件。表格行将首先出现。因此,现在您可以复制粘贴(或复制粘贴未列表的内容)

答案 2 :(得分:-2)

将文件移动到linux框中,然后执行diff命令: $ diff file1.txt file2.txt> file_diff.txt