Bagaimana mengalikan dua kolom dalam awk?

8

Saya ingin mengalikan kolom 1 dengan kolom 2 (sampai akhir file) dalam file input dan harus menampilkan 1 kolom dan mengalikan 3 kolom dalam file terpisah.

input.txt:

1 677679866
2 121867616
3 49413198
4 40415982

output.txt:

1 677679866
2 243735232
3 148239594
4 161663928
mendongkrak
sumber
Apakah ada pertanyaan di sini?
mikeserv

Jawaban:

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

Ini awksolusinya:

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

Tetapi Anda dapat melakukannya dengan banyak cara, berikut ini perlsolusinya:

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

Anda dapat membuat perubahan di tempat, dengan menggunakan -iopsi:

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