使用你期望在nix系统上找到的任何工具(事实上,如果你愿意,也可以使用msdos也很好),假设你是一种最容易/最快的方法来计算一组数字的平均值在流或文件中每行一个?
答案 0 :(得分:16)
awk ' { n += $1 }; END { print n / NR }'
这会累计n
中的总和,然后除以项目数(NR
=记录数)。
适用于整数或实数。
答案 1 :(得分:11)
awk中
awk '{total += $1; count++ } END {print total/count}'
答案 2 :(得分:5)
对UNIX使用Num-Utils:
average 1 2 3 4 5 6 7 8 9
答案 3 :(得分:3)
perl -e 'while (<>) { $sum += $_; $count++ } print $sum / $count, "\n"';
答案 4 :(得分:1)
在Powershell中,它将是
get-content .\meanNumbers.txt | measure-object -average
当然,这是冗长的语法。如果您使用别名键入它,
gc .\meanNumbers.txt | measure-object -a
答案 5 :(得分:1)
使用“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
(免责声明:我写了这个工具:))
答案 6 :(得分:0)
的Perl。
@a = <STDIN>;
for($i = 0; $i < #@a; $i++)
{
$sum += $a[i];
}
print $a[i]/#@a;
警告Emptor:我的语法可能有点狡猾。
答案 7 :(得分:0)
Ruby one liner
cat numbers.txt | ruby -ne 'BEGIN{$sum=0}; $sum=$sum+$_.to_f; END{puts $sum/$.}'