我有以下文件:
name id alello chr pos snp
s1 215 a 1 11 a215
s1 216 a 1 11 a216
s1 217 a 1 11 a217
s1 218 a 1 11 a218
s2 215 b 2 22 b215
s2 216 b 2 22 b216
s2 217 b 2 22 b217
s2 218 b 2 22 b218
我需要该文件是这样的:
snp allelo chr pos 215 216 217 218
s1 a 1 11 a215 a216 a217 a218
s2 b 2 22 b215 b216 b217 b218
答案1
awk 来救援!
$ awk 'NR==1{h=$1 OFS $3 OFS $4 OFS $5; next}
{a[$1]=(($1 in a)?(a[$1] OFS $NF):($3 OFS $4 OFS $5 OFS $6));
if(!($2 in b)) {h=h OFS $2; b[$2]}}
END{print h; for(k in a) print k,a[k]}' file | column -t
name alello chr pos 215 216 217 218
s1 a 1 11 a215 a216 a217 a218
s2 b 2 22 b215 b216 b217 b218
我没有解决这个问题。感谢卡拉克法。