2017-10-05 61 views
0

我有2個獨立的文件,每個文件由2列組成。每個文件中的一個列會有一些匹配的數據,每個文件都有一個對該文件唯一的第二列數據。同時匹配列可能不完全在每個文件示例:如何合併和對齊2個獨立文件的內容

文件1

Shelf1 Apples 
Shelf2 Pears 
Shelf3 Oranges 
Shelf4 Plums 

文件2

Shelf1 Restock 
Shelf2 Out_of_Season 
Shelf4 Full 

所需的輸出:

Shelf1 Apples Restock 
Shelf2 Pears  Out_of_Season 
Shelf3 Oranges 
Shelf4 Plums  Full 

注Shelf3沒有進入在文件2中,期望該文本的輸出在所需輸出中對於該列是空白的。玩過排序和合並bash和一些數組,但沒有太多的運氣。任何幫助將不勝感激。

+0

我認爲這樣的問題在SO – RomanPerekhrest

+0

上多次被回答這些文件是否被排序?第1列中的值是否唯一? – choroba

+0

它們按照每個文件中公共列的數字排序。但其中一個文件存在空白,例如File2中缺少第3層。 – Livewireorg

回答

1

您可以使用join-a選項無與倫比的領域,閱讀man join

kent$ join -a1 file1 file2 
Shelf1 Apples Restock 
Shelf2 Pears Out_of_Season 
Shelf3 Oranges 
Shelf4 Plums Full 

如果輸出格式(對齊)做的事,管的連接輸出到column -t,如:

join -a1 f1 f2|column -t 
+0

謝謝肯特!我試圖加強你的迴應,但它不會讓我。因爲我還沒有名譽。非常感激! – Livewireorg