cat file | perl -e 'for(<>){$a+=$_; $b++}; print $a/$b'
И таких скриптов было множество, найти среднее, найти наибольшее, найти наименьшее среди строк поданных на стандартный ввод - крайне типовая задача.
Разумеется, можно ее решить в лоб, например, найти наибольшее число в массиве можно следующим образом:
sort -g | tail -1Наименьшее
sort -g | head -1А вот со средним и суммой - сложности, тут в любом случае придется писать скрипт на каком-либо языке программирования. Либо... воспользоваться num-utils, которая предоставляет ряд чудесных утилит.
Устанавливаем:
apt-get install -y num-utilsКак результат мы получим целый комплкект отменных утилит для работы с числами:
dpkg -L num-utils | grep '/usr/bin/'
/usr/bin/numaverage
/usr/bin/numbound
/usr/bin/numinterval
/usr/bin/numnormalize
/usr/bin/numgrep
/usr/bin/numprocess
/usr/bin/numsum
/usr/bin/numrandom
/usr/bin/numrange
/usr/bin/numround
Сумма:
cat | numsum
1
2
3
6
12
Среднее арифметическое:
cat | numaverage
1
2
3
2
Наибольшее значение:
cat | numbound
1
4
6
1
444
5
444
Наименьшее значение:
4
1
0
1
3
444
0
Я привел лишь часть примеров, на самом деле, утилит больше, изучайте! :)
No comments:
Post a Comment
Note: only a member of this blog may post a comment.