我正在寻找一些选项在unix(可能是awk或sed),通过它我可以取代最后一列在我的fam文件与最后一列(v8)的.txt文件。
我的.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
我的.txt文件看起来像这样。
V1 V2 V3 V4 V6 V7_Pheno V8
2253792 20481 NA DNA 1 Yes 2
2253802 20483 NA DNA 4 Yes 2
2253816 20488 NA DNA 0 No 1
2253820 20492 NA DNA 4 Yes 2
我的outcome.fam文件应该如下所示
20481 20481 0 0 2 2
20483 20483 0 0 1 2
20488 20488 0 0 2 1
20492 20492 0 0 1 2
2条答案
按热度按时间wfauudbj1#
paste
合并行awk
允许选择列,因此我应该做你想做的事
如果要取消
.txt
文件的标题行,可以调用tail
跳过第一行:tail -n +2 bar.txt
因此,您可以将其集成到命令行中(假设您使用
bash
)vdzxcuhz2#
awk
可以独自完成。BEGIN
读取.txt
上的标头记录。然后,对于
.fam
的每一行,去掉最后一个字段并保存到l
。以这种方式使用的
getline
也解析为字段,因此print l$7;
打印.fam
中的缩短记录,并添加.txt
中的最后一个字段。