bash、awk 或类似的指数函数

Exponential function with bash, awk or similar

我有这个文本文件:

$ cat resultados.txt 
10.8
12.1
14.2
14.8
19.4
8.62
9.73

重要提示:数字在行中,而不是在列中。

我要进行几何运算:

e((l(number1)+l(number2)+l(numbern))/n)

我该怎么做?

如果您提供给定输入的预期输出,您的问题会更清楚,但这是您要找的吗?

$ awk '{sum+=log([=10=])} END{if (NR) print sum, sum/NR, exp(sum/NR)}' file
17.6152 2.51646 12.3846

这是几何平均数的另一种选择

$ awk 'BEGIN{p=1} {p*=[=10=]; n++} END{print p^(1/n)}' file
12.3846

或者,使用 NR

$ awk 'BEGIN{p=1} {p*=[=11=]} END{print p^(1/NR)}' file