Ich habe eine Reihe von Greps, Awks und Seds, die eine Liste von Zahlen erzeugen, eine in jeder Zeile. Etwas wie das:
1.13
3.59
1.23
Wie kann ich das zu etwas leiten, das den Durchschnitt, das Maximum und das Minimum ausgibt?
linux
bash
command-line-interface
JavaRocky
quelle
quelle
Antworten:
Da Sie bereits awk verwenden
quelle
awk
Muster/usr/local/bin/stats
einfügen und es dann als verwendenblabla | stats
.Ich finde dieses Programm nützlich, um Statistiken in Zahlenlisten über die Befehlszeile zu generieren: http://web.cs.wpi.edu/~claypool/misc/stats/stats.html
quelle
Es gibt auch simple-r, das fast alles kann, was R kann, aber mit weniger Tastenanschlägen:
https://code.google.com/p/simple-r/
Um Durchschnitt, Maximum und Minimum zu berechnen, müsste man Folgendes eingeben:
quelle
Mit einem Tipp auf @DerfK:
perl -lane '$n=$F[0]; if(not defined $min){$min=$max=$n}; if($n>$max){$max=$n}; if($n<$min){$min=$n}; $total+=$n; $count+=1; END{print $total/$count." $max $min"}'
$F[0]
ist der Wert im ersten (0.) Feld jeder ZeileWenn Ihre Eingabedaten durch Kommas getrennt sind, fügen Sie den
-F,
Modifikator vor-lane
quelle