标准 diff 工具对于查找文件中不同的行非常有用,但它不适用于逐个字符的差异。我经常需要在不同步的情况下在不同的计算机上逐个字符地合并文本(即书面文本,而不是代码)(是的,我知道我不应该这样做,但无论如何都会发生)。除了添加一两段之外,我还可能更改了逗号、拼写错误或文本中以前对两个文件都通用的其他一些小的更改。
Diff 会告诉我哪些行发生了变化,但由于每行可能有多个差异,我必须仔细扫描这些行以找到每行每个物理上很小但重要的差异。修复后,我必须重复 diff 以确保我没有错过任何编辑。当行是段落格式(即每段一行)以及许多连续行具有如此小的差异时,情况会变得更糟。
现在我必须承认,我通常只是将这两个文件加载到 Microsoft Word 中并使用其内置的 diff 功能。启动一个像 Word 这样的大包只是为了找到一些小的差异当然是不方便的,但至少它会逐个字符地比较文件。
我真正想要的是一种 Unix 方式来做到这一点。一个小而可爱的工具或脚本,它对文本进行逐个字符的比较,即不是基于行的,能够忽略行尾,通过一些合理的 ascii-art 进行报告,并且完全可以通过管道在命令行中使用脚本?
还有另一个问题,使用'diff'(或其他任何东西)来获得文本文件之间的字符级差异,但这个问题由基于网络的工具举例说明的lib满足,我更喜欢命令上的东西 -线。