Comment multiplier deux colonnes en awk?

8

Je veux multiplier la colonne 1 par la colonne 2 (jusqu'à la fin du fichier) dans le fichier d'entrée et je dois sortir 1 colonne et multiplier 3 colonnes dans un fichier séparé.

input.txt:

1 677679866
2 121867616
3 49413198
4 40415982

output.txt:

1 677679866
2 243735232
3 148239594
4 161663928
jack
la source
Y a-t-il une question ici?
mikeserv

Réponses:

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

Voici une awksolution:

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

Mais vous pouvez le faire de plusieurs façons, voici une perlsolution:

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

Vous pouvez apporter des modifications sur place, en utilisant l' -ioption:

$ perl -i.bak -ape 's/$F[1]/$F[0]*$F[1]/e' input.txt
cuonglm
la source