如何并排绘制 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
从
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
diff -y --suppress-common-lines file1 file2
来自icdiff的主页:
您的终端可以显示颜色,但大多数差异工具都没有很好地利用它。通过突出显示更改,icdiff 可以向您显示相似文件之间的差异,而不会妨碍您。这对于识别和理解现有线路中的微小变化特别有帮助。
icdiff 的目标不是试图成为所有情况下的 diff 替代品,而是成为一个工具,当 diff 无法立即明显地显示变化时,您可以使用该工具更好地了解发生的变化。
恕我直言,它的输出比
diff -y
更具可读性。
您可以使用:
sdiff file1 file2
或
diff -y file1 file2
或
vimdiff file1 file2
用于并排显示。
您应该使用
sdiff
来并排合并文件差异。阅读 man sdiff
了解完整故事。
您可以简单地使用:
diff -y fileA.txt fileB.txt | colordiff
它显示输出分为两列并着色! (
colordiff
)
您可以使用
vimdiff
。
示例:
vimdiff file1 file2
如果您的文件对空格和制表符的使用不一致,您可能会发现包含
-t
参数来展开制表符会很有帮助:
diff -ty file1 file2
尝试 ydiff - 在工作区中或从标准输入查看彩色增量差异,并支持并排和自动寻呼机。 (披露:我是作者)
使用
-y
选项:
diff -y 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 结果:
diff /tmp/test1.txt /tmp/test2.txt
> 1.5
3 <
8 | 6
9 | 7