awk把第1列相同的第2列按“;”拼起来,最后输出第1列和拼起来的结果

[root@localhost cc]# cat 2.txt
adc 3 5
a d a
a 3 adf
a d b
a 3 adf

第1列相同的第2列按";"拼起来,最后输出第1列和拼起来的结果:

[root@localhost cc]# awk '{a[$1]=a[$1] ";"$2} END{for (i in a)print i,a[i]}' 2.txt |sed 's/;//'
a d;3;d;3
adc 3

第1列相同的第2和第3列按";"拼起来,第2和第3列之间用“,”分割,最后输出第1列和拼起来的结果:

[root@localhost cc]# awk '{a[$1]=a[$1] ";"$2","$3} END{for (i in a)print i,a[i]}' 2.txt |sed 's/;//'
a d,a;3,adf;d,b;3,adf
adc 3,5

原文地址:https://www.cnblogs.com/chongchong88/p/6086088.html