回复 5# wh7211
大神
还有点问题,如下数据,
56038|27500|2500|11
56038|5000|2500|2
56039|25000|2500|10
56039|5000|2500|2
56041|24000|2000|12
56041|4500|1500|3
56045|500|500|1
56055|1000|1000|1
56056|5000|1000|5
56057|7000|1000|7
执行你的awk后的结果
56041|28500|3500,3500,3500,2000,2000,2000,2000,2000,2000,2000,2000,2000|12
56038|32500|5000,5000,2500,2500,2500,2500,2500,2500,2500,2500,2500|11
56039|30000|5000,5000,2500,2500,2500,2500,2500,2500,2500,2500|10
56045|500|500|1
56055|1000|1000|1
56056|5000|1000,1000,1000,1000,1000|5
56057|7000|1000,1000,1000,1000,1000,1000,1000,1000|7
我想实现如下结果:
56041|28500|3500,3500,3500,2000,2000,2000,2000,2000,2000,2000,2000,2000|12
56038|32500|5000,5000,2500,2500,2500,2500,2500,2500,2500,2500,2500|11
56039|30000|5000,5000,2500,2500,2500,2500,2500,2500,2500,2500|10
56045|500|500|1
56055|1000|1000|1
56056|5000|1000|5
56057|7000|1000|7
如果$1不同时就直接打印原始数据,如$1相同时$2相加,$3根据$4的分别相加,如1、2行$4分别为11,2,那结果文件以,分隔符的前两列就是1、2行$3相加,后9列直接打印第一行的$3数据。
麻烦大神再帮改一下awk,谢了
|