我可以使用join命令连接两个在不同列上具有相似性的文件吗?

时间:2014-08-27 09:25:40

标签: linux unix join

我有两个文件。一个有三列(文件1):

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的第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

如果您有解决方案,请详细解释,以便我可以将它用于不同的列。

提前致谢

1 个答案:

答案 0 :(得分: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命令的手册页。