Unix 不同的侧对侧结果?

我如何能够绘制一个 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
180040 次浏览

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

使用 -y选项:

diff -y file1 file2

你应该有 sdiff并排合并文件的差异。采取阅读的 man sdiff为完整的故事。

来自 icdiff 的 网页:

enter image description here

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

与其试图成为所有情况下的差异替代品,icdiff 的目标是成为一个工具,当差异不是立即显而易见的时候,你可以用它来更好地了解哪些地方发生了变化。

恕我直言,它的输出比 diff -y更具可读性。

你可以简单地使用:

diff -y fileA.txt fileB.txt | colordiff

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

尝试 Cdiff-查看彩色,增量差异在工作空间或从标准并排和自动寻呼机支持。

你可使用:

sdiff  file1 file2

或者

diff -y file1 file2

或者

vimdiff file1 file2

并排展示。

你可以使用 vimdiff

例如:

vimdiff file1 file2
diff -y --suppress-common-lines file1 file2

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

diff -ty file1 file2

使用颜色、并排和别名增强了 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