¿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

¿Hay una pregunta aquí?
mikeserv

Respuestas:



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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.