Em awk
, você precisa fazer referência a um pacote sem o sinal $
, somente total
, não $total
.
Na declaração awk
:
$total=$total+$1
awk
expandiu isso para (observe que a variável total
está definida como 0
no bloco BEGIN{}
):
$0=$0+$1
Você alterou o valor $0
para o valor de si mesmo mais o campo primeiro valor (que é o mesmo), portanto, $0
está definido como o dobro do valor de $0
. Ao definir $0
, você também alterou o valor de $1
.
O que você deseja alcançar é somar todos os valores do primeiro campo. Isso pode ser conseguido desta maneira:
awk '{a+=$1;print a}' file
Para o valor da variável a
, o valor de $1
é adicionado em cada linha.