2010-07-25 71 views
2

假設我有兩個共享列的製表符分隔文件。這兩個文件都有一個標題行,爲每列提供了一個標籤。什麼是一個簡單的方法來把兩個表結合起來,即從A和B中取出列,但是根據列K的值來做呢?基於列值組合製表符分隔文件

例如,表A中可能是:

employee_id name 
123 john 
124 mary 

和表B中可能是:

employee_id age 
124 18 
123 22 

然後根據表A( 「EMPLOYEE_ID」)的第1列的結合應產生表:

employee_id name age 
123 john 22 
124 mary 18 

我想這樣做使用Unix實用程序,如「切」等。這怎麼可以做?

+0

約翰爲什麼有18和22沒有年齡?錯字? – ghostdog74 2010-07-25 01:19:51

回答

4

這是一個開始。我離開你格式化頭需要

$ awk 'NR>1{a[$1]=a[$1]" "$2}END{for(i in a)print a[i],i}' tableA.txt tableB.txt 
age employee_id 
john 22 123 
mary 18 124 

另一種方式

$ join <(sort tableA.txt) <(sort tableB.txt) 
123 john 22 
124 mary 18 
employee_id name age 

實驗與加入選項需要時(見信息頁面或手冊頁)

5

可以使用join工具,但你的文件需要先排序。

join file1 file2 

man join瞭解更多信息

1

嘗試:

paste file1 file2 > file3