我有一个与之前的帖子非常相似的问题: Merging two files by a single column in unix 但我想根据两列合并数据(顺序相同,因此无需排序)。 例如,
subjectid subID2 姓名 年龄
12 121 简 16
24241 克里斯汀 90
15 151 克拉克 78
23 231 乔安 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 简 16
24 241 0.738 克里斯汀 90
15 151 0.392 克拉克 78
23 231 1.2E-5 乔安娜 31
当我使用 join 时,它只考虑第一列(subjectid)并重复 SubID2 列。 请问有没有办法通过 join 或其他方式来做到这一点?谢谢您
最佳答案
join 命令没有扫描多个字段作为连接条件的选项。因此,您必须在其中添加一些智能。假设您的文件每行都有固定数量的字段,您可以使用如下内容:
join f1 f2 | awk '{print $1" "$2" "$3" "$4" "$6}'
前提是字段计数如示例中所示。否则,您需要通过添加或删除一些字段来调整 awk 命令中的打印范围。
关于linux - 基于两列合并两个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15839546/