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

Apakah ada pertanyaan di sini?
mikeserv

Jawaban:



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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.