我有这个文本文件:
$ 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)
我该怎么做?
答案 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