12

使用您希望在 nix 系统上找到的任何工具(事实上,如果您愿意,msdos 也可以),假设您有一个计算一组数字的平均值的最简单/最快的方法是什么流或文件中的每行?

4

8 回答 8

16
awk ' { n += $1 }; END { print n / NR }'

这会累积 中的总和n,然后除以项目数(NR= 记录数)。

适用于整数或实数。

于 2008-10-18T02:26:41.367 回答
12

awk

awk '{total += $1; count++ } END {print total/count}'
于 2008-10-18T02:05:49.800 回答
5

在 UNIX 上使用Num-Utils

average 1 2 3 4 5 6 7 8 9
于 2008-10-18T01:48:31.427 回答
3
perl -e 'while (<>) { $sum += $_; $count++ } print $sum / $count, "\n"';
于 2008-10-18T01:40:58.603 回答
2

使用“st”(https://github.com/nferraz/st):

$ st numbers.txt
N      min   max    sum    mean  sd
10.00  1.00  10.00  55.00  5.50  3.03

指定一个选项以查看单个统计信息:

$ st numbers.txt --mean
5.5

(免责声明:我写了这个工具:))

于 2013-09-04T15:16:04.380 回答
1

在 Powershell 中,它将是

get-content .\meanNumbers.txt | measure-object -average

当然,这是冗长的语法。如果您使用别名键入它,

gc .\meanNumbers.txt | measure-object -a
于 2008-10-18T13:11:30.567 回答
0

珀尔。

@a = <STDIN>;

for($i = 0; $i < #@a; $i++)
{
   $sum += $a[i];
}

print $a[i]/#@a;

警告 Emptor:我的语法可能有点奇怪。

于 2008-10-18T01:40:44.453 回答
0

红宝石一班轮

cat numbers.txt | ruby -ne 'BEGIN{$sum=0}; $sum=$sum+$_.to_f; END{puts $sum/$.}'

来源

于 2018-02-08T20:55:41.350 回答