2008-10-18 6 views

Répondre

11

Awk

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

Perl.

@a = <STDIN>; 

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

print $a[i]/#@a; 

Caveat Emptor: Ma syntaxe est peut-être un peu floue.

3
perl -e 'while (<>) { $sum += $_; $count++ } print $sum/$count, "\n"'; 
5

En utilisant Num-Utils pour UNIX:

average 1 2 3 4 5 6 7 8 9 
+0

Intéressant. J'ai installé ceci sur Ubuntu et j'ai dû spécifier les nombres sur stdin, pas comme arguments. – Glyph

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

Ce accumule la somme en n, divise par le nombre d'éléments (NR = Nombre d'enregistrements).

Fonctionne pour les entiers ou les réels.

+0

Nice sur le tour de NR, ne savais pas quelle réponse awk accepter, donc j'ai fait machine arrière et est allé pour celui avec le plus de votes! – Anthony

1

En Powershell, il serait

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

Bien sûr, c'est la syntaxe verbeux. Si vous avez tapé à l'aide d'alias,

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

aide "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 

Spécifiez une option pour voir les statistiques individuelles:

$ st numbers.txt --mean 
5.5 

(DISCLAIMER: J'ai écrit ce outil :))

0

Rubis un liner

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

source

Questions connexes