unix 左右比较结果?

问题描述 投票:0回答:11

如何并排绘制 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
bash unix diff
11个回答
293
投票

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

118
投票
diff -y --suppress-common-lines file1 file2

69
投票

来自icdiff的主页

enter image description here

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

icdiff 的目标不是试图成为所有情况下的 diff 替代品,而是成为一个工具,当 diff 无法立即明显地显示变化时,您可以使用该工具更好地了解发生的变化。

恕我直言,它的输出比

diff -y
更具可读性。


26
投票

您可以使用:

sdiff  file1 file2

diff -y file1 file2

vimdiff file1 file2

用于并排显示。


13
投票

您应该使用

sdiff
来并排合并文件差异。阅读
man sdiff
了解完整故事。


10
投票

您可以简单地使用:

diff -y fileA.txt fileB.txt | colordiff

它显示输出分为两列并着色! (

colordiff
)


10
投票

您可以使用

vimdiff

示例:

vimdiff file1 file2

9
投票

如果您的文件对空格和制表符的使用不一致,您可能会发现包含

-t
参数来展开制表符会很有帮助:

diff -ty file1 file2

7
投票

尝试 ydiff - 在工作区中或从标准输入查看彩色增量差异,并支持并排和自动寻呼机。 (披露:我是作者


6
投票

使用

-y
选项:

diff -y file1 file2

4
投票

增强了带有颜色、并排和别名的 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 结果:

diff /tmp/test1.txt /tmp/test2.txt
                                                                              > 1.5
3                                                                             <
8                                                                             | 6
9                                                                             | 7
© www.soinside.com 2019 - 2024. All rights reserved.