2011-12-02 48 views
13

我使用的差异与-y--suppress-common-lines选项和输出几乎是完美的,除了我想看到更改的行数。是否可以在并排差异输出中显示行号?

实施例:

file1的:

line a 
line b 
line c 

file2的:

line a 
line B 
line c 
line d 

命令和输出:

$ diff -y --suppress-common-lines file1 file2 
line b              | line B 
                   > line d 

是用Diff选项可能这样的组合或我东东d另一种工具?

回答

9

不幸的是,-y选项在内部使用格式化样式(与--LFMT-line-format一样),您不能累积格式化命令和-y。 你不能从格式化参数中获得什么-y,所以你不能直接使用diff(我检查了diff 3.2源代码)。

您需要使用其他工具。

+0

我非常确定这一点,但谢谢你的确认!现在找到另一个工具... –

0

如果你总是比较同一行号线,你可以使用这样的事情:

$ awk 'NR==FNR{a[NR]=$0;next}{x=a[FNR];if($0!=x)printf("%s;%s;%s\n",FNR,x,$0)}' file1 file2 
327;有る;ある 
431;先ず;まず 
543;連れて行く;連れていく 
719;幾ら;いくら 
1318;込む;混む 
1415;かわいそう;可哀相 
1713;だんだん;段々 
2491;大みそか;大晦日 
4120;もうける;儲ける 
4510;ほほ笑む;微笑む 
4512;もうかる;儲かる 
5727;剥げる;剝げる 

FNR(记录的文件数)等于NR当awk处理的第一个文件。 next语句跳到下一条记录。

相关问题