如何在 unix 中并排显示行号?
How to display line numbers in side by side diff in unix?
场景是我有 2 个文件,我想使用以下带有行号的命令并排比较:
diff -y file1.txt file2.txt
和
sdiff file1.txt file2.txt
上面的命令只是并排打印差异,但不显示行号。有什么办法吗?我搜索了很多但找不到任何解决方案。我不能使用第三方工具仅供参考。 任何人有什么天才的想法吗?
更新:
我想要文件本身的文件编号,而不是通过管道传输到 cat -n 等生成的行号。可以说,我正在使用“--suppress-common- l ines" 那么应该省略 diff 中没有显示的行号。
以下代码可用于并排显示两个文件中的不常用字段。
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)
这会为您提供来自 source 文件的 side-by-side 输出 line-numbers。
以下命令将显示 side-by-side 输出,前面加上行号 file1.txt 并删除相同的行。
sdiff -l file1.txt file2.txt | cat -n | grep -v -e '($'
我遇到了同样的问题,最终在 fedora 28 下使用了图形工具 (diffuse)
场景是我有 2 个文件,我想使用以下带有行号的命令并排比较:
diff -y file1.txt file2.txt
和
sdiff file1.txt file2.txt
上面的命令只是并排打印差异,但不显示行号。有什么办法吗?我搜索了很多但找不到任何解决方案。我不能使用第三方工具仅供参考。 任何人有什么天才的想法吗?
更新:
我想要文件本身的文件编号,而不是通过管道传输到 cat -n 等生成的行号。可以说,我正在使用“--suppress-common- l ines" 那么应该省略 diff 中没有显示的行号。
以下代码可用于并排显示两个文件中的不常用字段。
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)
这会为您提供来自 source 文件的 side-by-side 输出 line-numbers。
以下命令将显示 side-by-side 输出,前面加上行号 file1.txt 并删除相同的行。
sdiff -l file1.txt file2.txt | cat -n | grep -v -e '($'
我遇到了同样的问题,最终在 fedora 28 下使用了图形工具 (diffuse)