148

如何并排绘制 unix diff 命令的结果,而不是一个接一个地绘制差异?请参阅下面的示例:

    diff /tmp/test1  /tmp/test2
1,4c1,2
< asfdsadf
< asdfsad
< fsaf
< fdsadf
---
> asdfsafdsf
> saf
6,8d3
< sadf
< asdf
< sadf
10d4
< fasd
12,13c6,14
< sadfa
< fd
---
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> safa

我想要类似的东西:

diff /tmp/test1  /tmp/test2
1,4c1,2
< asfdsadf       > asdfsafdsf
< asdfsad        > saf       
< fsaf
< fdsadf
---
6,8d3
< sadf
< asdf
< sadf
10d4
< fasd
12,13c6,14
< sadfa               > sadf
< fd              > sadf
---               > sadf
              > sadf
              > sadf
              > sadf
              > sadf
              > sadf
              > safa
4

11 回答 11

223

man diff,您可以使用-y并排执行。

-y, --side-by-side
       output in two columns

因此,说:

diff -y /tmp/test1  /tmp/test2

测试

$ cat a                $ cat b
hello                  hello
my name                my name
is me                  is you

让我们比较一下:

$ diff -y a b
hello                                                           hello
my name                                                         my name
is me                                                         | is you
于 2013-06-19T15:33:14.700 回答
64
diff -y --suppress-common-lines file1 file2
于 2018-04-03T12:30:40.593 回答
59

来自 icdiff 的主页

在此处输入图像描述

您的终端可以显示颜色,但大多数 diff 工具并没有很好地利用它。通过突出显示更改,icdiff 可以向您显示相似文件之间的差异,而不会妨碍您。这对于识别和理解现有生产线中的小变化特别有用。

icdiff 的目标不是试图成为所有情况下的 diff 替代品,而是成为一种工具,您可以使用它来更好地了解从 diff 中无法立即看出的变化。

恕我直言,它的输出比diff -y.

于 2015-01-21T14:14:01.907 回答
19

您可以使用:

sdiff  file1 file2

或者

diff -y file1 file2

或者

vimdiff file1 file2

用于并排显示。

于 2016-06-08T20:46:52.940 回答
12

您应该sdiff对文件差异进行并排合并。阅读man sdiff全文。

于 2013-06-19T15:35:22.813 回答
9

您可以简单地使用:

diff -y fileA.txt fileB.txt | colordiff

它显示输出分成两列并着色!( colordiff)

于 2015-09-17T21:12:54.867 回答
7

尝试cdiff - 在工作区或标准输入中查看彩色增量差异,并支持并排和自动寻呼机。

于 2016-05-12T02:57:40.217 回答
7

您可以使用vimdiff.

例子:

vimdiff file1 file2
于 2017-06-19T18:26:32.003 回答
7

如果您的文件对空格和制表符的使用不一致,您可能会发现包含-t扩展选项卡的参数很有帮助:

diff -ty file1 file2
于 2018-05-17T14:14:57.913 回答
6

使用-y选项:

diff -y file1 file2
于 2013-06-19T15:33:18.560 回答
2

具有颜色、并排和别名的增强 diff 命令

假设文件内容如下:

cat /tmp/test1.txt
1
2
3
4
5
8
9

cat /tmp/test2.txt
1
1.5
2
4
5
6
7

现在并排比较

diff --width=$COLUMNS --suppress-common-lines --side-by-side --color=always /tmp/test1.txt /tmp/test2.txt
                                                                              > 1.5
3                                                                             <
8                                                                             | 6
9                                                                             | 7

您可以定义别名使用

alias diff='diff --width=$COLUMNS --suppress-common-lines --side-by-side --color=always'

然后新的差异结果:

diff /tmp/test1.txt /tmp/test2.txt
                                                                              > 1.5
3                                                                             <
8                                                                             | 6
9                                                                             | 7
于 2020-05-27T10:48:23.707 回答