最初の列とuniqのみを並べ替える

最初の列とuniqのみを並べ替える

次のリストがあります。

1,cat  
1,dog  
2,apple  
3,human

私は次の出力が欲しい:

1,cat,dog  
2,apple  
3,human  

したがって、1列の値1には、2列のcatとdogの値が含まれます。可能ですか?

ベストアンサー1

最初の列が厳密に並べられたとします。

$ awk -F, '$1==last {printf ",%s",$2;next} NR>1{print""} {last=$1;printf "%s",$0} END{print""}' file
1,cat,dog
2,apple
3,human

あるいは、入力ラインの順序は制限されません(出力ラインの順序は保証されません)。

$ awk -F, '{a[$1]=a[$1]","$2} END{for (i in a)print i a[i]}' file
1,cat,dog
2,apple
3,human

おすすめ記事