2014-08-27 17 views
0

我有兩個文件。一個三列(文件1):我可以使用join命令來連接兩個在不同列上具有相似性的文件嗎?

AX-76297970 24 1000227 
AX-76297974 24 1000999 
AX-76297977 24 1001279 
AX-76297978 24 1001552 
AX-76297979 24 1001892 
AX-76297985 24 1002443 
AX-76297989 24 1002815 
AX-76297993 24 1003894 
AX-76297994 24 1004444 

,另一個數列(文件2):

24  991  3  2  51.39 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  -5  1  1  1  1  1  1  1  1  1 
24  1000227 4  1  35496.64  0  0  0.077 0  0  0.077 0  0  0  0  0.308 0  0  0  0  -5  0  0  0  0  0  0  0  0 
24  1068 3  4  257.06 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  -5  1  1  1  1  1  1  1  1  1 
24  1002443 4  2  66.67 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  -5  1  1  1  1  1  0.95 1  1  1 
24  1094 3  4  98.21 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  0  1  1  1  1  1  1  1  1  1 

我想要做的是加入的文件1第3欄這兩個文件和文件2.to第2欄獲取文件2的所有列的輸出是這樣的:

24  1000227 4  1  35496.64  0  0  0.077 0  0  0.077 0  0  0  0  0.308 0  0  0  0  -5  0  0  0  0  0  0  0  0 

24  1002443 4  2  66.67 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  -5  1  1  1  1  1  0.95 1  1  1 

如果你有解決方案,你可以請詳細解釋一下,所以我可以用它來做不同的列。

在此先感謝

+0

如果你知道'R','merge'和'match'命令可以解決這個問題。 – user1436187 2014-08-27 09:31:28

+1

所以你想找到file2中的第二列在file1的第三列中找到那些行?如果是這樣,'awk'FNR == NR {a [$ 3];接下來}在'f1 f2'中賺2美元。 – fedorqui 2014-08-27 09:38:04

回答

2

喜歡的東西

join -1 3 -2 2 file1 file2 

-1 3 tells join to use column three (3) of the first file (-1) 
-2 2 tells join to use column two (2) of the second file (-2) 

應該這樣做。也許你會需要指定分隔符:

join -t '\t' -1 3 -2 2 file1 file2 

看一看該手冊頁join命令。

+0

有'-'的那些和那些沒有'-'的有什麼不同?這是分別與第一個和第二個文件有關。 – user1436187 2014-08-27 09:33:23

+0

@ user1436187:see edit – Mithrandir 2014-08-27 09:53:25

+0

因此,它可以與3個文件一起使用 – user1436187 2014-08-27 10:11:49

相關問題