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 的值。这可能吗?
假设第一列是严格排序的:
$ 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)