【发布时间】:2016-08-23 00:57:58
【问题描述】:
我是一个初学者,如果之前已经介绍过,我深表歉意,但我似乎无法准确找到我需要的东西。我正在尝试基于两个文件中的公共列合并两个文件。
文件1
2:16641345_T_C -6.7483 49.4866 0.8915
3:14503229_A_C 1.5627 1.2460 0.2098
8:13381223_AT_A -0.0255 0.7766 0.9738
13:58575029_G_A 8.4617 64.4474 0.8955
2:203233108_A_C -7.5032 63.4653 0.9059
22:35773673_G_C -0.6282 1.2473 0.6145
4:76220798_A_T -0.0413 0.0459 0.3682
2:106567150_T_C 0.0011 0.0471 0.9819
3:68098578_T_C 0.0169 0.0429 0.6934
文件2
2:16641345_T_C C T 6.53133e-05
3:14503229_A_C C A 0.000297125
8:13381223_AT_A A AT 0.000773358
13:58575029_G_A A G 0.000320199
2:203233108_A_C C A 0.000158051
22:35773673_G_C C G 0.000446161
4:76220798_A_T T A 0.339496
2:106567150_T_C C T 0.298242
3:68098578_T_C C T 0.52789
第一列在两个文件中是通用的。期望的输出是:
输出
2:16641345_T_C C T 6.53133e-05 -6.7483 49.4866 0.8915
3:14503229_A_C C A 0.000297125 1.5627 1.2460 0.2098
etc...
我尝试了以下方法,但它只给了我输出中文件 2 的第二列:
awk 'NR==FNR{a[$1]=$2;next} ($1) in a{print $0, a[$1]}' file1 file2
2:16641345_T_C C T 6.53133e-05 -6.7483
3:14503229_A_C C A 0.000297125 1.5627
提前感谢您的帮助!
【问题讨论】:
-
你可以在没有awk的情况下使用join命令,比如join file2 file1。