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

 

posted @ 2016-11-21 17:03  chongchong88  阅读(3060)  评论(0编辑  收藏  举报