如何比较两个文件并生成第三个文件,其中所有差异都被标记替换?

如何比较两个文件并生成第三个文件,其中所有差异都被标记替换?

我正在寻找的东西与平常类似差异文件 A 和 B 之间,但打印出文件 C,其中包含 A 和 B 的共同内容,但也包含差异(由某些标记替换,例如,如下所示的 §§§§)。

文件A:

brown fox 
lazy dog 
both moving
1
2
3

文件B:

RED fox 
lazy dog 
OUCH, GONE 
ARE, BACK
1
3

生成的文件 C:

§§§ fox 
lazy dog
§§§§§§§§§§
§§§§§§§§§
1
§
3

我设法告诉差异如何做一半的解决方案差异AB-tyd:

brown fox                                                       |  RED fox 
lazy dog                                                           lazy dog 
both moving                                                     |  OUCH, GONE 
                                                                >  ARE, BACK
1                                                                  1
2                                                               <
3                                                                  3

然而,仍然需要对列之间进行直接比较。我可以将每个单词视为一行并提要差异再次,或者使用一些正则表达式命令进行比较和替换。我非常确定有一个标准方法可以做到这一点,因为有几个软件能够进行考虑行内差异的差异(例如 Intellij Idea、Overleaf): 在此输入图像描述

空格作为单词边界并不一定相关,如图所示。

另一个部分解决方案是使用wdiff ba -n:

[-RED-]{+brown+} fox 
lazy dog 
[-OUCH, GONE -]
[-ARE, BACK-] 
{+both moving+}
1
{+2+}
3

相关内容