command line - para - ¿Cuál es la forma más rápida de obtener la media de un conjunto de números de la línea de comando?
mediana (7)
Usando cualquier herramienta que esperaría encontrar en un sistema nix (de hecho, si lo desea, msdos también está bien), ¿cuál es la forma más fácil / rápida de calcular la media de un conjunto de números, suponiendo que los tiene uno por línea en una secuencia o archivo?
Awk
awk ''{total += $1; count++ } END {print total/count}''
En Powershell, sería
get-content ./meanNumbers.txt | measure-object -average
Por supuesto, esa es la sintaxis detallada. Si lo escribiste usando alias,
gc ./meanNumbers.txt | measure-object -a
Perl.
@a = <STDIN>;
for($i = 0; $i < #@a; $i++)
{
$sum += $a[i];
}
print $a[i]/#@a;
Caveat Emptor: mi sintaxis puede ser un poco ociosa.
Usando Num-Utils para UNIX:
average 1 2 3 4 5 6 7 8 9
awk '' { n += $1 }; END { print n / NR }''
Esto acumula la suma en n
, luego se divide por el número de elementos ( NR
= Número de registros).
Funciona para enteros o reales.
perl -e ''while (<>) { $sum += $_; $count++ } print $sum / $count, "/n"'';
Usando "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
Especifique una opción para ver estadísticas individuales:
$ st numbers.txt --mean
5.5
(DESCARGO DE RESPONSABILIDAD: escribí esta herramienta :))