我要感谢你们的大力帮助和支持。嗯,我有以下文件:

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

拜托,有人能帮我吗?非常感谢你

最佳答案

去营救!

$ 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

09-09 20:37