2014-01-21 11 views
-1

我有兩個文件,說:連接兩個未排序的txt文件在UNIX

FILE1

size freq 
    1 .4 
    2 .8 
    8 .3 
    40 .2 
    90 .1 

和file2

size freq 
    1 .2 
    3 .5 
    4 .1 
    60 .3 
    70 .2 

我喜歡的方式加盟那就這樣,結果會是這樣的:

size freq1 freq2 
     1 .4 .2 
     2 .8 0 
     3 0 .5 
     8 0 0 
     40 .2 0 
     60 0 .3 
     70 0 .2 
     90 .1 0 

我用

join -a 1 -a 2 -e "0" -o '0,1.2,2.2' FILE1 FILE2 

但是它從一個文件中逐一排序。有什麼方法可以同時加入和排序結果嗎? 在此先感謝

+2

輸出很好,我的'加入(GNU coreutils)8.20'。 – fedorqui

+0

我的輸出也很好。 – Brightshine

+0

加入V 8.13(Ubuntu 12.04)也很好。也許你想告訴我們你的'join'版本以及你觀察到的輸出是什麼? – Alfe

回答

0

注意join不支持排序(1)(還)相同的鍵選擇和比較函數。因此,必須以特定的方式使用排序來對數據進行排序,以便爲加入(1)所接受。具體來說,在這種情況下,join(1)當前不支持數字比較。 可以通過使用固定寬度的數值字段(帶前導零)保持「數字」順序,或者如果嚴格的數字順序不是問題,您可以按照默認方式進行排序操作, :sort -k 1b,1(這在加入手冊頁中有記錄)。