使用在nix系统上预期会找到的任何工具(实际上,如果你愿意,msdos也可以),假设你有一个每行为一个数字的流或文件,最简单/最快的方法是计算这组数字的平均数?
使用在nix系统上预期会找到的任何工具(实际上,如果你愿意,msdos也可以),假设你有一个每行为一个数字的流或文件,最简单/最快的方法是计算这组数字的平均数?
awk ' { n += $1 }; END { print n / NR }'
此代码将累加 n
中的总和,然后通过项数(NR
= 记录数量)进行除法运算。
适用于整数或实数。
Awk
awk '{total += $1; count++ } END {print total/count}'
使用UNIX的Num-Utils:
average 1 2 3 4 5 6 7 8 9
perl -e 'while (<>) { $sum += $_; $count++ } print $sum / $count, "\n"';
$ 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
(免责声明:这个工具是我自己写的:))
get-content .\meanNumbers.txt | measure-object -average
当然,那是冗长的语法。如果你使用别名输入它,
gc .\meanNumbers.txt | measure-object -a
Perl。
@a = <STDIN>;
for($i = 0; $i < #@a; $i++)
{
$sum += $a[i];
}
print $a[i]/#@a;
注意:我的语法可能有点不太准确。