2017-06-06 2 views
2

Umwandlung Ich verarbeite Ausgabe von einer Datei in bash und müssen Werte mit ihren Schlüsseln gruppieren.In bash, wie multimap <K,V> auf eine Karte von <K, {V1,V2}>

Zum Beispiel habe ich die

13,47099 
13,54024 
13,1 
13,39956 
13,0 
17,126223 
17,52782 
17,4 
17,62617 
17,0 
23,1022724 
23,79958 
23,80590 
23,230 
23,1 
23,118224 
23,0 
23,1049 
42,72470 
42,80185 
42,2 
42,89199 
42,0 
54,70344 
54,72824 
54,1 
54,62969 
54,1 

in einer Datei und Gruppe alle Werte von einem bestimmten Schlüssel in eine einzige Zeile wie in

13,47099,54024,1,39956,0 
17,126223,52782,4,62617,0 
23,1022724,79958,80590,230,1,118224,0,1049 
42,72470,80185,2,89199,0 
54,70344,72824,1,62969,1 

gibt es etwa 10000 Einträge in meiner Eingabedatei . Wie transformiere ich diese Daten in der Shell?

Antwort

4

awk zur Rettung!

vorausgesetzt Schlüssel angrenzen ...

$ awk -F, 'p!=$1 {if(a) print a; a=p=$1} 
       {a=a FS $2} 
      END {print a}' file 

13,47099,54024,1,39956,0                             
17,126223,52782,4,62617,0                             
23,1022724,79958,80590,230,1,118224,0,1049                         
42,72470,80185,2,89199,0                             
54,70344,72824,1,62969,1  
+0

perfekte Antwort. . Genau was ich wollte – Anoop

Verwandte Themen