awkで2つの列を掛ける方法は?

awkで2つの列を掛ける方法は?

入力ファイルの列1と列2を掛けたい(ファイルの終わりまで)、別々のファイルから列1を出力して列3を掛ける必要があります。

入力.txt:

1 677679866
2 121867616
3 49413198
4 40415982

出力.txt:

1 677679866
2 243735232
3 148239594
4 161663928

答え1

awk '{ print $1, $1 * $2 }' input.txt > output.txt

答え2

解決策は次のとおりですawk

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

ただし、さまざまな方法でこれを実行できますperl。解決策は次のとおりです。

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

オプションを使用して内部変更を実行できます-i

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

関連情報