Tuesday, 31 May 2011

Анализ числовых данных в Linux посредством num-utils

Довольно часто у меня рождались вот такие скрипты (ниже приведен пример скрипта для подсчета среднего арифметического) для анализа каких-либо чиловых данных:
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.