如何在unix中并排显示diff中的行号



场景是我有两个文件,我想使用以下带有行号的命令并排进行差异:

diff -y file1.txt file2.txt

sdiff file1.txt file2.txt

上面的命令只是并排打印diff,但不显示行号。有什么办法吗?我找了很多,但找不到任何解决方案。仅供参考,我不能使用第三方工具任何人都有天才的想法吗

更新:

我想要文件本身的文件号,而不是通过管道连接到cat-n等生成的行号。比如说,我正在使用"--suppress-common-l"进行diff‌​ines",则应省略差异中未显示的行号。

下面的代码可以用来并排显示两个文件中的不常见字段。

sdiff -l file1 file2 | cat -n | grep -v -e '($'  

下面的代码将在输出中显示常见字段和行号。

diff -y file1 file2 | cat -n | grep -v -e '($'  
sdiff -s <(cat -n file1.txt) <(cat -n file2.txt)

这使您可以使用文件中的行号进行并行输出。

下面的命令将显示并排输出,并以file1.txt的行号和删除的相同行为前缀。

sdiff -l file1.txt file2.txt | cat -n | grep -v -e '($'

我遇到了同样的问题,最终在fedora 28 下使用了一个图形工具(diffusive(

最新更新