2008-10-18 3 views

Antwort

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; 

Vorbehalt Emptor: Meine Syntax kann ein wenig süchtig sein.

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

Mit Num-Utils für UNIX:

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

Interessant. Ich habe dies auf Ubuntu installiert und musste die Zahlen auf stdin angeben, nicht als Argumente. – Glyph

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

Dies ist die Summe in n ansammelt, dividiert durch die Anzahl der Elemente (NR = Anzahl der Datensätze).

Funktioniert für Ganzzahlen oder Realzahlen.

+0

Schön auf den NR-Trick, war nicht sicher, welche awk-Antwort zu akzeptieren, also habe ich ausgerechnet und ging für die mit den meisten Stimmen! – Anthony

1

In Powershell wäre es

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

Natürlich sein, das ist die ausführliche Syntax. Wenn Sie es mit Aliasnamen eingegeben haben,

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

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

eine Option angeben individuelle Statistiken, um zu sehen:

$ st numbers.txt --mean 
5.5 

(HAFTUNGSAUSSCHLUSS: Ich schrieb dieses Werkzeug :))

0

Rubin ein Liner

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

source

Verwandte Themen