2008-10-18 13 views

Respuesta

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: Mi sintaxis puede ser un poco aturdida.

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

Usando Num-Utils para UNIX:

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

interesante. Instalé esto en Ubuntu y tuve que especificar los números en stdin, no como argumentos. – Glyph

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

Esta acumula la suma en n, luego se divide por el número de artículos (NR = Número de registros)

Funciona para enteros o reales.

+0

Agradable en el truco de NR, no estaba seguro de qué respuesta de awk aceptar, así que me salí y elegí el que obtuviera más votos. – Anthony

1

En Powershell, sería

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

Por supuesto, eso es la sintaxis detallada. Si escribió que el uso de alias,

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

El uso de "c" (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 

especificar una opción para ver las estadísticas individuales:

$ st numbers.txt --mean 
5.5 

(AVISO: Escribí este herramienta :))

0

Ruby one liner

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

source

Cuestiones relacionadas