Multiplique uma coluna usando awk

1

Como eu multiplico uma coluna por um inteiro (digamos 3) e substituo o valor mais antigo por um novo, usando awk ?

Entrada:

Data     9390.900391 10573.089844    80.000000   200.000000     2.700000
Data    17762.810547 18536.189453    85.000000   200.000000     2.700000

Saída esperada: (depois de multiplicar a última coluna por 3)

Data     9390.900391 10573.089844    80.000000   200.000000     8.100000
Data    17762.810547 18536.189453    85.000000   200.000000     8.100000
    
por Tofayel 22.01.2015 / 08:03

2 respostas

4

Tente:

$ awk 'NF{$NF = sprintf("%.6f", $NF*3)}1' file
Data 9390.900391 10573.089844 80.000000 200.000000 8.100000
Data 17762.810547 18536.189453 85.000000 200.000000 8.100000

Altere $NF para o $n , em que n é o campo que você deseja alterar.

    
por 22.01.2015 / 08:12
1

Usando um loop for :

awk '/^$/{next}; {for(i=1;i<=5;i++){printf "%s\t", $i}; printf "%.6f\n", $6*3}' file 
Data    9390.900391     10573.089844    80.000000       200.000000      8.100000
Data    17762.810547    18536.189453    85.000000       200.000000      8.100000
    
por 22.01.2015 / 08:41