Como multiplicar duas colunas no awk?

6

Eu quero multiplicar a coluna 1 com a coluna 2 (até o final do arquivo) no arquivo de entrada e deve gerar 1 coluna e multiplicar a coluna 3 no arquivo separado.

input.txt:

1 677679866
2 121867616
3 49413198
4 40415982

output.txt:

1 677679866
2 243735232
3 148239594
4 161663928
    
por jack 22.04.2014 / 03:55

2 respostas

12
awk '{ print $1, $1 * $2 }' input.txt > output.txt
    
por 22.04.2014 / 04:02
3

Aqui está uma solução awk :

$ awk '$0=$1" "$1*$2' input.txt 
1 677679866
2 243735232
3 148239594
4 161663928

Mas você pode fazer isso de várias formas, aqui está uma perl solution:

$ perl -ape 's/$F[1]/$F[0]*$F[1]/e' input.txt
1 677679866
2 243735232
3 148239594
4 161663928

Você pode fazer alterações no local usando -i option:

$ perl -i.bak -ape 's/$F[1]/$F[0]*$F[1]/e' input.txt
    
por 22.04.2014 / 04:13