nom*_*a49 24 unix diff file sdiff
场景是我有两个文件,我想要使用以下命令并排编号:
diff -y file1.txt file2.txt
Run Code Online (Sandbox Code Playgroud)
和
sdiff file1.txt file2.txt
Run Code Online (Sandbox Code Playgroud)
上面的命令只是打印并排差异,但不显示行号.有什么办法吗?我搜索了很多但找不到任何解决方案.我不能使用第三方工具FYI.任何人的天才想法?
更新:
我想要文件本身存在的文件编号而不是管道生成的行号到cat -n等.让我们说,我正在使用"--suppress-common-l ines"做差异然后行号应该是省略了没有在差异中显示的内容.
Uts*_*Uts 13
下面的代码可以用来显示两个文件中的不常见字段,并排显示.
sdiff -l file1 file2 | cat -n | grep -v -e '($'
Run Code Online (Sandbox Code Playgroud)
下面的代码将显示公共字段以及输出中的行号.
diff -y file1 file2 | cat -n | grep -v -e '($'
Run Code Online (Sandbox Code Playgroud)
您还可以访问https://unix.stackexchange.com/questions/34874/diff-output-line-numbers以获取其他格式.
小智 6
sdiff -s <(cat -n file1.txt) <(cat -n file2.txt)
Run Code Online (Sandbox Code Playgroud)
这为您提供了来自源文件的行号的并排输出。
小智 6
以下命令将显示以 file1.txt 的行号为前缀的并排输出,并删除相同的行。
sdiff -l file1.txt file2.txt | cat -n | grep -v -e '($'
Run Code Online (Sandbox Code Playgroud)