我有一个与上一篇文章非常相似的问题: Merging two files by a single column in unix 但我想基于两列合并我的数据(订单是相同的,所以不需要排序)。 例如,
subjectid subID2名称年龄
12 121简16
24 241克里斯汀90
15 151 Clarke 78
23 231 Joann 31
subjectid subID2 prob_disease
12 121 0.009
24 241 0.738
15 151 0.392
23 231 1.2E-5
输出看起来像
subjectid SubID2 prob_disease名称年龄
12 121 0.009 Jane 16
24 241 0.738克里斯汀90
15 151 0.392 Clarke 78
23 231 1.2E-5 Joanna 31
当我使用join时,它只考虑第一列(subjectid)并重复SubID2列。 有没有办法通过加入或其他方式这样做?谢谢
答案 0 :(得分:2)
join命令没有选项可以扫描多个字段作为加入条件。因此,您必须在混合中添加一些智能。假设您的文件在每一行上都有固定数量的字段,您可以使用以下内容:
join f1 f2 | awk '{print $1" "$2" "$3" "$4" "$6}'
如果您的示例中给出了字段计数。否则,您需要通过添加或删除某些字段来调整awk命令中的打印范围。
答案 1 :(得分:2)