Como adicionar números em muitas matrizes

1

Eu tenho um arquivo com muitos arrays, que tem números de "identificadores" na primeira coluna. Portanto, preciso somar os números localizados na segunda coluna com base nesses "identificadores".

Um exemplo da entrada:

1: 6.1703
44 10
46 18.3
44 45.9
46 3.9

2: 6.1932
44 11.2
46 4.3
44 15.6319
46 20.12

3: 16.5
45 22.8
45 18.3
46 31

a saída precisa ser:

1: 6.1703
44 55.9
46 22.2

2: 6.1932
44 26.8319
46 24.42

3: 16.5
45 41.1
46 31
    
por alloppp 03.06.2016 / 18:56

1 resposta

1

Isso fará o trabalho

awk '
    /^[[:blank:]]*$/{for (k in a) print k, a[k]; delete a; print ""; next}
    /:/{print; next}
    {a[$1] += $2}
    END {for (k in a) print k, a[k]}
    ' data

1: 6.1703
44 55.9
46 22.2

2: 6.1932
44 26.8319
46 24.42

3: 16.5
45 41.1
46 31
    
por 03.06.2016 / 21:19