仅对第一列和 uniq 进行排序

XY *_*Y g 1 text-processing sort

我有一个如下列表:

1,cat  
1,dog  
2,apple  
3,human
Run Code Online (Sandbox Code Playgroud)

我想要这样的输出:

1,cat,dog  
2,apple  
3,human  
Run Code Online (Sandbox Code Playgroud)

因此,第 1 列中的值 1 包含第 2 列中 cat 和 dog 的值。这可能吗?

Joh*_*024 5

假设第一列是严格排序的:

$ 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
Run Code Online (Sandbox Code Playgroud)

或者,允许以任何顺序输入行(以及不保证顺序的输出行):

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