在bash中加入两个文件

时间:2018-07-30 01:27:42

标签: bash join

我正在尝试将具有两个公共列的两个文件合并在一起

文件1

globpusnf113 aggr1_nf581 6 18
globpusnf113 aggr1_nf582 2 15
globpaunf112 nf561_aggr1 1 21
globpaunf112 nf561_aggr2 - 10
globpaunf112 nf562_aggr1 - 22
globpuknf112 aggr1_n563 - 36
globpuknf112 aggr1_n564 - 40
globpaunf112 aggr1_n561 2 29

文件2

globpusnf113 aggr1_nf581 47TB 38TB 9229GB 81%
globpusnf113 aggr1_nf582 47TB 40TB 7237GB 85%
globphanf112 nf561_aggr1 12TB 8487GB 4737GB 64%
globphanf112 nf561_aggr2 7347GB 4930GB 2417GB 67%
globphanf112 nf562_aggr1 12TB 9605GB 3619GB 73%
globpuknf112 aggr1_n563 40TB 31TB 9329GB 77%
globpuknf112 aggr1_n564 40TB 32TB 8266GB 80%
globpaunf112 aggr1_n561 65TB 43TB 21TB 67%

我需要这样的输出:(file2中的所有列以及file2中的第3列和第4列。

globpusnf113 aggr1_nf581 47TB 38TB 9229GB 81% 6 18
globpusnf113 aggr1_nf582 47TB 40TB 7237GB 85% 2 15

我的命令是

bash-4.2$ join -t " " -1 1 -2 1 /tmp/file2 /tmp/file2
 aggr1_nf581 6 181_nf581 47TB 38TB 9229GB 81%
 aggr1_nf582 2 151_nf581 47TB 38TB 9229GB 81%

我在做什么错了。

谢谢

1 个答案:

答案 0 :(得分:0)

join需要排序的输入。您的样本未排序(globpa ...在globpu之后...但应该在之前)。