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

Y a-t-il une question ici?
mikeserv

Réponses:



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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.