linux - 如何根据 .txt 文件 unix 中现有列的值添加新列
问题描述
我有一个这样的 .txt 文件,其中包含六列。我想V8
根据列的值将第七列添加到文件V7_Pheno
中,其方式Yes
应编码为2
, No
as1
和缺失值-9
V1 V2 V3 V4 V6 V7_Pheno
2253792 20482 NA DNA 1 Yes
2253802 20491 NA DNA 4 Yes
2253816 20503 NA DNA 0 No
2253820 20508 NA DNA 4 Yes
2253821 20509 NA DNA 0 No
2253824 20511 NA DNA 0 No
2253826 20513 NA DNA 3 Yes
2253829 20516 NA DNA 6 Yes
我正在寻找的结果 .txt 文件应该是这样的
V1 V2 V3 V4 V6 V7_Pheno V8
2253792 20482 NA DNA 1 Yes 2
2253802 20491 NA DNA 4 Yes 2
2253816 20503 NA DNA 0 No 1
2253820 20508 NA DNA 4 Yes 2
2253821 20509 NA DNA 0 No 1
2253824 20511 NA DNA 0 No 1
2253826 20513 NA DNA 3 Yes 2
2253829 20516 NA DNA 6 Yes 2
解决方案
使用awk
:
awk 'NR==1{$7="V8";print;next}\
$6 == "Yes" {$7="2"};\
$6 == "No" {$7="1"}1' a.txt |column -t
- 第一行在
V8
标题中打印 - 如果 6th col: 的
V7_Pheno
值为Yes
,则$7 = "2"
- 如果 6th col: 的
V7_Pheno
值为No
,则$7 = "1"
column -t
:为了更好的格式
推荐阅读
- javascript - 将剩余天数转换为年、月、日
- javascript - 如何使用回车键使我的具有 role="button" 属性的 div 可点击
- javascript - .toLocaleDateString() 的 Javascript 日期对象有趣的行为
- django - Django lt+gt 条件与。不等条件
- node.js - NodeJs websocket断开连接
- c - 程序没有输出
- mongodb - MongoDB中集合的使用
- javascript - Vue Multiselect 不加载数据
- r - 在 R 中使用“reshape”将长格式转换为宽格式
- javascript - 指定的 GSHEET_JSON_URL 不包含 JSON