You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unix环境下使用awk/sed将.fam文件最后一列替换为.txt文件V8列的方法

实现方法

你需要的按ID匹配替换列的功能可以直接用awk一行命令完成,命令如下:

awk 'NR==FNR{if(NR>1) id_map[$2]=$NF; next} {if($2 in id_map) $NF=id_map[$2]; print}' your_data.txt your_data.fam > outcome.fam

命令逻辑说明

  • 先读取txt文件:跳过txt的表头行,将每行的第二列(ID列V2)作为索引,最后一列(V8列)作为值存入字典
  • 再读取fam文件:匹配到对应ID时,将fam的最后一列替换为字典中存储的对应V8值,逐行输出到结果文件

运行上述命令后生成的outcome.fam就和你给出的预期结果完全一致,等价于R中按ID merge后替换列的效果。

内容的提问来源于stack exchange,提问作者Aryh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 08:27:03