根据特定条件将CSV文件中的多行组合成一行

时间:2013-03-11 10:51:57

标签: linux csv awk

我正在尝试以这种格式读取CSV文件

COL1, COL2  
5, 25  
5, 67  
5, 89  
3, 55  
3, 8  
3, 109  
3, 12  
3, 45  
3, 663  
80, 34  
80, 5  

并将COL2组合在一行中具有相同COL1的所有条目,以便第一列指示后面的列数。因此,对于上面给出的示例,输出文件应如下所示:

3, 25, 67, 89  
6, 55, 8, 109, 12, 45, 663  
2, 34, 5  

1 个答案:

答案 0 :(得分:0)

使用awk的解决方案:

$ awk 'NR>1{a[$1]=a[$1]", "$2;c[$1]++}END{for (k in a) print c[k] a[k]}'  file
3, 25, 67, 89
6, 55, 8, 109, 12, 45, 663
2, 34, 5