如何使用“diff”命令获得最大收益?

cwd*_*cwd 9 command-line diff

我过去曾尝试使用 linuxdiff命令,但没有太多运气或耐心。我通常最终会使用像 DiffMerge 或 Kdiff 这样的 GUI 实用程序。

最近我开始diff再次尝试通过 ssh 来比较远程系统上的文件,我发现这个-y / --side-by-side选项非常有用,但我仍然觉得我没有充分利用这个实用程序。

所以我很好奇如何实现以下目标:

  1. 突出显示更改或使用颜色编码使输出更具可读性
  2. 合并 - 选择有差异的行并将更改影响到文件之一

另外,我在谷歌搜索时没有找到很多好的例子,所以如果你有一些 linux-fu 的秘密来充分利用 diff,你能分享一下吗?我将主要比较基于文本的配置文件,但任何技巧和技巧都会很棒。

供参考- DiffMerge 实用程序可以轻松地通过颜色突出显示并排显示更改。顶部的图标允许您在“显示全部”、“显示差异”和“显示与上下文的差异”视图之间切换。在命令提示符下会喜欢这些功能。

ps:我还应该指出,我认为非常有用的另一个选项是我--suppress-common-lines在这篇简洁易读的博客文章中了解到

l0b*_*0b0 9

没有特定的顺序:

  • meld 是一个非常好的 diff 程序,它执行非常好的差异和三向合并。
  • git config --global merge.conflictstyle diff3为您提供三路合并输出,以便与meld.
  • wdiff是否有文字差异,如果有颜色就很好:wdiff -w "$(tput bold;tput setaf 1)" -x "$(tput sgr0)" -y "$(tput bold;tput setaf 2)" -z "$(tput sgr0)" ...
  • 为了尽量减少diff输出中的麻烦,我通常使用--ignore-all-space( -w) 选项
  • diff-ignore-moved-lines* 做它在标签上所说的。
  • difff* 可用于仅区分在给定字段中匹配的行。

* 免责声明:我是作者,并开发了这些来帮助 CLI 和 GUI 差异和合并。


nic*_*bot 7

我发现vimdiff非常有用。