usando nawk, ¿cómo sumar todos los números en los campos $1, $2 y $3?

usando nawk, ¿cómo sumar todos los números en los campos $1, $2 y $3?

Usando nawk, ¿cómo sumar todos los números en $1los campos $2, y $3?

8     6     2

7     3     5

1     9     4

Quiero que el resultado sea suma = 45

Respuesta1

nawk 'BEGIN { sum=0; } {sum += $1 + $2 + $3;} END { printf "%d\n", sum } ' a.in

Respuesta2

usando awk:

awk '{x+=$0;}END{print x}' RS="[ \n]"  file

Esto funcionará independientemente del número de filas o columnas. Al utilizar el separador de registros (RS) como espacio o nueva línea, cada valor se divide en una línea separada y, por lo tanto, se puede agregar fácilmente.

Respuesta3

También puedes usar coreutils y bc:

<file head -c-1 | tr ' \n' '++'; echo) | bc

Si se deben omitir algunas columnas, por ejemplo, si la entrada es así:

A 8 6 2
B 7 3 5
C 1 9 4

cutPuede seleccionar los deseados:

<file cut -d' ' -f2- | head -c-1 | tr ' \n' '++'; echo) | bc

Salida en ambos casos:

45

información relacionada