我有兩個文件看起來像這樣:猛砸加入過多個領域
文件1
a b 1 1
b d 2 3
文件2
a 10 11
b 20 21
d 30 31
而且我想加入他們的行列,以具有以下輸出,這是頭兩個字段中第一個用file2寫入的文件:
a b 1 1 10 11 20 21
b d 2 3 20 21 30 31
我試圖使用連接,但我無法管理根據file1的前兩個字段加入文件。
我有兩個文件看起來像這樣:猛砸加入過多個領域
文件1
a b 1 1
b d 2 3
文件2
a 10 11
b 20 21
d 30 31
而且我想加入他們的行列,以具有以下輸出,這是頭兩個字段中第一個用file2寫入的文件:
a b 1 1 10 11 20 21
b d 2 3 20 21 30 31
我試圖使用連接,但我無法管理根據file1的前兩個字段加入文件。
既然你想加入兩行,你需要參加兩次,管道第一的標準輸出到第二的標準輸入:
join -11 -21 file1 file2 | join -12 -21 - file2
編輯:啊拍,是顛倒了順序前兩個字段,是嗎?
b a 1 1 10 11 20 21
d b 2 3 20 21 30 31
編輯2:這可能是更好的 - 如果你顛倒順序的加入,你會得到第一個兩列按照正確的順序,但聯接的列將被交換:
join -12 -21 file1 file2 | join -12 -21 - file2
產量:
a b 1 1 20 21 10 11
b d 2 3 30 31 20 21
嘿好,我認爲我們得到了它 - 編輯3與邁克爾Vehrs建議:
join -11 -21 file1 file2 | join -o "1.1 1.2 1.3 1.4 1.5 1.6 2.2 2.3" -12 -21 - file2
個
產量:
a b 1 1 10 11 20 21
b d 2 3 20 21 30 31
回答幾百次,用awk。 – 123
沒有辦法只用於連接嗎? – pauloss
不是我知道沒有。 – 123