【发布时间】:2014-05-29 23:34:10
【问题描述】:
我有 2 个文件需要基于 2 列进行合并。我尝试使用 awk 并尝试使用 _ 组合两列,然后使用 join 命令。使用join时,有些记录即使排序后也没有匹配到,产生了多条记录。使用 awk awk 'NR==FNR{a[$1,$2]=$3;next} ($1,$2) in a{print $0, a[$1,$2]}' file 1 file 2
我可以正确匹配文件,但当不存在匹配项时,无法将输出打印为零。
文件 1:
chr pos SNP#
1 124 1
1 237 2
1 356 3
2 107 4
2 224 5
文件 2:
chr pos SNPHD
1 12 1
1 56 2
1 124 3
1 160 4
1 237 5
1 256 6
1 354 7
2 107 8
2 185 9
2 224 10
期望的输出:
chr pos SNP# SNPHD
1 12 0 1
1 56 0 2
1 124 1 3
1 160 0 4
1 237 2 5
1 256 0 6
1 354 0 7
1 356 3 0
2 107 4 8
2 185 0 9
2 224 5 10
任何帮助将不胜感激,我是大数据文件和 unix 的新手!
【问题讨论】: