Awk 基于列对行进行分组

Awk 基于列对行进行分组,awk,Awk,我试图根据第1列对下面的结果进行分组,但无法这样做 输入: rs10923724 C TBX15 intergenic rs10923724 T WARS2 intron rs72705210 G AMPD2 upstream rs72705210 A GSTM4 downstream 期望输出: rs10923724 C,T TBX15,WARS2 intergenic,intron rs72705210 G,A AMPD2,GSTM4 upstream,downstream 我尝试过的代

我试图根据第1列对下面的结果进行分组,但无法这样做

输入:

rs10923724 C TBX15 intergenic
rs10923724 T WARS2 intron
rs72705210 G AMPD2 upstream
rs72705210 A GSTM4 downstream
期望输出:

rs10923724 C,T TBX15,WARS2 intergenic,intron
rs72705210 G,A AMPD2,GSTM4 upstream,downstream
我尝试过的代码:

awk '{ A[$1]=A[$1]", "$2} END { for(X in A) print X"\t",substr(A[X],=2) }'
输出:

rs10923724 C,T
rs72705210 G,A
$awk'{k=$1;

(i=2;我感谢你的帮助@karakfa!
$ awk '{k=$1; 
        for(i=2;i<=NF;i++) a[k,i]=(k in ks)?a[k,i]","$i:$i;
        ks[k]} 
   END {for(k in ks) 
          {printf "%s", k FS; 
           for(i=2;i<=NF;i++) printf "%s", a[k,i] (i==NF?ORS:FS)}}' file

rs72705210 G,A AMPD2,GSTM4 upstream,downstream
rs10923724 C,T TBX15,WARS2 intergenic,intron