我想在unix中将两个文件合并为一列。
我有file_a:
subjectid name age
12 Jane 16
24 Kristen 90
15 Clarke 78
23 Joann 31
我有另一个file_b:
subjectid prob_disease
12 0.009
24 0.738
15 0.392
23 1.2E-5
我想在命令行中合并这些文件。我想通过subjectid合并文件a和b。由于每个文件大约有200万行,我试过R但由于数据量大而冻结,有人可以帮我在linux中做这个吗? 期望的输出:
subjectid prob_disease name age
12 0.009 Jane 16
24 0.738 Kristen 90
15 0.392 Clarke 78
23 1.2E-5 Joanna 31
请帮忙谢谢!
答案 0 :(得分:14)
结帐join(1)
。在您的情况下,您甚至不需要任何标志:
$ join file_b file_a
subjectid prob_disease name age
12 0.009 Jane 16
24 0.738 Kristen 90
15 0.392 Clarke 78
23 1.2E-5 Joann 31
答案 1 :(得分:2)
您正在寻找join
命令:
$ cat test.1
12 Jane 16
24 Kristen 90
15 Clarke 78
23 Joann 31
$ cat test.2
12 0.009
24 0.738
15 0.392
23 1.2E-5
$ join -j1 -o 2.1,2.2,1.2,1.3 <(sort test.1) <(sort test.2)
12 0.009 Jane 16
15 0.392 Clarke 78
23 1.2E-5 Joann 31
24 0.738 Kristen 90
$