¿Cómo multiplicar dos columnas en awk?

8

Quiero multiplicar la columna 1 con la columna 2 (hasta el final del archivo) en el archivo de entrada y debería generar 1 columna y multiplicar 3 columnas en un archivo separado.

input.txt:

1 677679866
2 121867616
3 49413198
4 40415982

output.txt:

1 677679866
2 243735232
3 148239594
4 161663928
Jack
fuente
¿Hay una pregunta aquí?
mikeserv

Respuestas:

15
awk '{ print $1, $1 * $2 }' input.txt > output.txt
jasonwryan
fuente
4

Aquí hay una awksolución:

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

Pero puede hacerlo de muchas maneras, aquí hay una perlsolución:

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

Puede hacer cambios en el lugar, usando la -iopción:

$ perl -i.bak -ape 's/$F[1]/$F[0]*$F[1]/e' input.txt
Cuonglm
fuente