У меня есть серия grep, awks и seds, которые выводят список чисел, по одному в каждой строке. Что-то вроде этого:
1.13
3.59
1.23
Как я могу передать это к чему-то, что будет выводить среднее, максимальное и минимальное значения?
linux
bash
command-line-interface
JavaRocky
источник
источник
Ответы:
Так как вы уже используете awk
источник
awk
образец в/usr/local/bin/stats
или такой, и затем использовал бы это какblabla | stats
.Я считаю эту программу полезной для генерации статистики по спискам чисел в командной строке: http://web.cs.wpi.edu/~claypool/misc/stats/stats.html
источник
Существует также simple-r, который может делать почти все, что может R, но с меньшим количеством нажатий клавиш:
https://code.google.com/p/simple-r/
Чтобы вычислить среднее, максимальное и минимальное значения, необходимо ввести одно из следующих значений:
источник
С кончиком шляпы @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]
значение в первом (0-ом) поле каждой строкиЕсли ваши входные данные разделены запятыми, добавьте
-F,
модификатор перед-lane
источник