linux - 替换Unix中两个文件之间的列
问题描述
如何将以下 data.fam 文件的第 6 列替换为 .txt 文件的第 3 列。
我的data.fam
文件看起来像这样
20481 20481 0 0 2 -9
20483 20483 0 0 1 1
20488 20488 0 0 2 1
20492 20492 0 0 1 1
20493 20493 0 0 1 -9
20498 20498 0 0 2 -9
data.txt
文件看起来像这样。
20481 2 1
20488 2 1
20483 2 1
20493 1 0
22822 2 1
20498 -9 -9
22692 1 0
应该output.fam
像
20481 20481 0 0 2 1
20483 20483 0 0 1 1
20488 20488 0 0 2 1
20492 20492 0 0 1 0
20493 20493 0 0 1 0
20498 20498 0 0 2 1
我试过awk 'FNR==NR{a[$1]=$2;next}{$6=a[$3]}1' data.txt data.fam >output.fam
但输出没有第 6 列,如下所示。我在哪里做错了?
20481 20481 0 0 2
20483 20483 0 0 1
20488 20488 0 0 2
20492 20492 0 0 1
20493 20493 0 0 1
20498 20498 0 0 2
解决方案
推荐阅读
- python - 如何在 matplotlib 的条形图中添加多个数据标签
- ruby-on-rails - 在我的 Rails 应用程序中计算加班的最佳方法是什么?
- flutter - 如何在 Flutter 中创建自定义视频播放器?
- python - Django 套接字:/robot/1 处的 ConnectionRefusedError,[Errno 111] 连接被拒绝
- ios - 请求输入:swift 8 位模拟器架构
- html - 为什么网站在手机上放大(bulma)?
- mailchimp - 使用 MailChimp API v3 添加地址
- html - 为什么向我的图像添加属性链接会移动我的图像?
- c# - 2 不同组框中的单选按钮
- typescript - 在这种情况下,TypeScript 类型系统是否过于宽松?