如何在unix中显示并排差异中的行号?

bzzcjhmw  于 11个月前  发布在  Unix
关注(0)|答案(4)|浏览(110)

该方案是,我有2个文件,我想用下面的命令与行号并排差异:

diff -y file1.txt file2.txt

字符串

sdiff file1.txt file2.txt


上面的命令只是打印并排差异,但不显示行号。有什么方法可以做到这一点吗?我搜索了很多,但找不到任何解决方案。我不能使用第三方工具FYI。任何天才的想法从任何人?

更新:

  • 我希望文件本身的文件编号,而不是通过管道到cat -n等生成的行号。比方说,我正在使用“--suppress-common-l criminines”进行diff,那么应该省略diff中未显示的行号。*
svdrlsy4

svdrlsy41#

下面的代码可用于并排显示两个文件中的非常用字段。

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

字符串
下面的代码将在输出中显示公共字段沿着行号。

diff -y file1 file2 | cat -n | grep -v -e '($'

qmelpv7a

qmelpv7a2#

sdiff -s <(cat -n file1.txt) <(cat -n file2.txt)

字符串
这将为您提供与 source 文件中的行号并行的输出。

ryhaxcpt

ryhaxcpt3#

下面的命令将显示并行输出,并在输出前加上file1.txt的行号,同时删除相同的行。

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

字符串

pu3pd22g

pu3pd22g4#

我也遇到了同样的问题,最后使用了Fedora28下的图形工具(diffuse)

相关问题