这个StackOverflow回答有一张KDiff3的图片,突出显示了行内差异。请问是否有一种工具可以在命令行上展示相同的效果(例如,通过颜色)?
另一种思考这个问题的方式是希望能够在补丁文件中对每个差异进行比较。
这个StackOverflow回答有一张KDiff3的图片,突出显示了行内差异。请问是否有一种工具可以在命令行上展示相同的效果(例如,通过颜色)?
另一种思考这个问题的方式是希望能够在补丁文件中对每个差异进行比较。
我尝试了所有我能找到的工具:wdiff、dwdiff、kdiff3、vimdiff来展示两行长且略有不同的文本之间的区别。我最喜欢的是diff-highlight
(git contrib的一部分)
在Ubuntu上,您可能已经将其作为git contrib的一部分(安装在git
deb软件包中)。
从/usr/share/doc/git/contrib/diff-highlight/diff-highlight
复制或链接到您的~/bin文件夹中。
cat tmp.diff | diff-highlight | colordiff
结果:
另一种直观的查看所有单词级别差异的方式(虽然不是并排显示)是使用wdiff
和colordiff
(您可能需要安装两者)。一个示例是:
wdiff -n {file-A} {file-A} | colordiff
您可以选择将此内容导入less -R
中以滚动查看输出结果(-R
用于在less
中显示颜色)。
我曾经遇到过类似的问题,不想使用vimdiff
。我发现dwdiff
(Debian可用)比wdiff
更具有优势。
dwdiff
最有用的功能是您可以使用-d [CHARS]
自定义分隔符,因此它对于比较各种输出非常有用。它还内置了颜色,使用-c
标志即可。
colordiff
来实现此功能。我没有测试过,但并排输出(由传递给 colordiff 的任何选项都会 传递到 diff 中,除了 colordiff 特定的选项 'difftype', 例如:
colordiff --difftype=debdiff file1 file2
'difftype' 的有效值为:diff、 diffc、diffu、diffy、wdiff、debdiff; 这些分别对应普通差异、上下文差异、统一差异、 并排差异、wdiff 输出和 debdiff 输出。当 colordiff 无法自动确定差异类型时,请使用这些覆盖。
diff -y file1 file2
生成)可能会给您提供等效的行内差异。