Usando o nawk, como somar todos os números nos $1
campos $2
, e $3
?
8 6 2
7 3 5
1 9 4
Quero que o resultado seja soma = 45
Responder1
nawk 'BEGIN { sum=0; } {sum += $1 + $2 + $3;} END { printf "%d\n", sum } ' a.in
Responder2
usando awk:
awk '{x+=$0;}END{print x}' RS="[ \n]" file
Isso funcionará independentemente do número de linhas ou colunas. Ao usar o separador de registros (RS) como espaço ou nova linha, cada valor é dividido em uma linha separada e, portanto, pode ser facilmente adicionado.
Responder3
Você também pode usar coreutils e bc:
<file head -c-1 | tr ' \n' '++'; echo) | bc
Se algumas colunas devem ser omitidas, por exemplo, se a entrada for assim:
A 8 6 2
B 7 3 5
C 1 9 4
cut
pode selecionar os desejados:
<file cut -d' ' -f2- | head -c-1 | tr ' \n' '++'; echo) | bc
Saída em ambos os casos:
45