Soma elementos dos números das colunas em muitas matrizes

0

Eu preciso somar os números localizados na mesma coluna em uma matriz.

A entrada é:

1: 6.1703
44 3.5 0.3
46 7.3 2.3

2: 6.1932
44 5.29379 2.9
46 1.72261 7.2261

3: 6.5664
45 4.756 5.6
46 1.6 2.5

4: 8.0923
44 1.41 7.6

A saída deve ser:

1: 6.1703
 10.8 2.6

2: 6.1932
 7.01640 10.1261

3: 6.5664
 6.356 8.1

4: 8.0923
 1.41 7.6
    
por alloppp 06.06.2016 / 13:20

2 respostas

0

Uma abordagem ligeiramente diferente usando awk -v RS="" -f script data , em que script é o seguinte:

{
    s1 = s2 = 0;
    for (i=4; i < NF; i = i + 3) {
        s1 += $i;
        s2 += $(i+1);
    }
    print $1, $2 "\n " s1, s2 "\n";
}

Isso faz uso do fato de que os "arrays" são separados por linhas em branco.

    
por 06.06.2016 / 14:55
0

tente

/:/ { if ( NR>1 ) printit() ; print ; two=0 ; three=0 ; next;}
NF > 2 { two+=$2 ; three+=$3 ; next }
{ print ; }
function printit() {  printf " %s %s\n",two,three; }
END { printit() ;}
  • função printit imprime resultado real
  • As somas
  • são calculadas em uma linha com dois pontos ( : ).
  • A cláusula END é usada para impressão final.
por 06.06.2016 / 13:42