2011-12-02 92 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語句跳到下一條記錄。

相關問題