ฉันมีผลลัพธ์บางอย่างในรูปแบบของ:
count id type
588 10 | 3
10 12 | 3
883 14 | 3
98 17 | 3
17 18 | 1
77598 18 | 3
10000 21 | 3
17892 2 | 3
20000 23 | 3
63 27 | 3
6 3 | 3
2446 35 | 3
14 4 | 3
15 4 | 1
253 4 | 2
19857 4 | 3
1000 5 | 3
...
ซึ่งค่อนข้างยุ่งและต้องทำความสะอาดได้ถึง CSV ดังนั้นฉันจึงสามารถมอบให้กับผู้จัดการโครงการสำหรับพวกเขาในสเปรดชีตนรกจากนั้น
แก่นของปัญหาคือ: ฉันต้องการผลลัพธ์ของสิ่งนี้เพื่อ:
id, sum_of_type_1, sum_of_type_2, sum_of_type_3
ตัวอย่างนี้คือ id "4":
14 4 | 3
15 4 | 1
253 4 | 2
19857 4 | 3
สิ่งนี้ควรเป็น:
4,15,253,19871
โชคไม่ดีที่ฉันเป็นขยะในเรื่องแบบนี้ฉันจัดการเพื่อให้ทุกบรรทัดถูกกำจัดและเป็น CSV แต่ฉันไม่สามารถทำซ้ำและจัดกลุ่มแถวได้ ตอนนี้ฉันมีสิ่งนี้:
awk 'BEGIN{OFS=",";} {split($line, part, " "); print part[1],part[2],part[4]}' | awk '{ gsub (" ", "", $0); print}'
แต่สิ่งที่จะทำความสะอาดตัวอักษรขยะและพิมพ์แถวอีกครั้ง
วิธีที่ดีที่สุดในการนวดแถวลงในเอาต์พุตที่กล่าวถึงข้างต้นคืออะไร?