具有bash,awk或类似功能的指数函数

时间:2016-12-22 17:54:26

标签: bash shell awk grep bc

我有这个文本文件:

$ 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)

我该怎么做?

2 个答案:

答案 0 :(得分:1)

如果您提供输入的预期输出,那么您的问题会更清楚,但这是您正在寻找的吗?

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

答案 1 :(得分:1)

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

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

或,与NR

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