次のリストがあります。
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