如何在awk中将两列相乘?

如何在awk中将两列相乘?

我想将输入文件中的第 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

相关内容