使用你期望在nix系统上找到的任何工具(事实上,如果你愿意,也可以使用msdos也很好),假设你是一种最容易/最快的方法来计算一组数字的平均值在流或文件中每行一个?

有帮助吗?

解决方案

awk中

awk '{total += $1; count++ } END {print total/count}'

其他提示

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

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

适用于整数或实数。

在UNIX上使用 Num-Utils

average 1 2 3 4 5 6 7 8 9
perl -e 'while (<>) { $sum += <*>; $count++ } print $sum / $count, "\n"';

在Powershell中,它将是

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

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

gc .\meanNumbers.txt | measure-object -a

使用“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

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

的Perl。

@a = <STDIN>;

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

print $a[i]/#@a;

警告Emptor:我的语法可能有点狡猾。

Ruby one liner

cat numbers.txt | ruby -ne 'BEGIN{$sum=0}; $sum=$sum+

Ruby one liner

<*>

来源

.to_f; END{puts $sum/$.}'

来源

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top