Eu tenho uma série de greps, awks e seds que produzem uma lista de números, um em cada linha. Algo assim:
1.13
3.59
1.23
Como posso canalizar isso para algo que produzirá a média, max e min?
linux
bash
command-line-interface
JavaRocky
fonte
fonte
Respostas:
Como você já está usando o awk
fonte
awk
padrão acima/usr/local/bin/stats
ou algo assim e usá-lo comoblabla | stats
.Acho este programa útil para gerar estatísticas em listas de números na linha de comando: http://web.cs.wpi.edu/~claypool/misc/stats/stats.html
fonte
Há também simple-r, que pode fazer quase tudo o que R, mas com menos pressionamentos de tecla:
https://code.google.com/p/simple-r/
Para calcular a média, max e min, seria necessário digitar um dos seguintes:
fonte
Com uma ponta do chapéu para @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]
é o valor no primeiro (0'ésimo) campo de cada linhaSe seus dados de entrada estiverem separados por vírgula, adicione o
-F,
modificador antes de-lane
fonte