合并相同键的值

Wan*_*ick 4 linux bash shell awk

是否可以将awk相同键的值用于一行?例如

a,100
b,200
a,131
a,102
b,203
b,301
Run Code Online (Sandbox Code Playgroud)

我可以将它们转换为这样的文件:

a,100,131,102
b,200,203,301
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 5

你可以像这样使用awk:

awk -F, '{a[$1] = a[$1] FS $2} END{for (i in a) print i a[i]}' file

a,100,131,102
b,200,203,301
Run Code Online (Sandbox Code Playgroud)

我们使用-F,逗号作为分隔符并使用数组a来保持聚合值.

参考: 有效的AWK编程