создание графиков с помощью сценария оболочки - PullRequest
1 голос
/ 07 декабря 2009

Мне нужно сделать график с числовыми значениями за период времени, значения представляют онлайн-пользователей на веб-странице.

скрипт будет запускаться с помощью cron каждые 30 минут, а необходимый HTML-файл будет загружен с помощью wget. но есть еще нерешенные вопросы и проблемы:

- мне нужно получить только числовое значение из HTML-кода (но grep возвращает всю строку), как я могу получить только числовое значение? Я могу получить строку с grep, это выглядит так:

                            Users online: 24 917                    </div>

Как я могу получить только 24917?

- что будет проще? создать файл .svg с графиком или сохранить значения в файле .csv (и сгенерировать график с помощью OOo или чего-то подобного). Может быть, другие хорошие идеи?

Заранее спасибо,

-skazhy

Ответы [ 2 ]

3 голосов
/ 07 декабря 2009

Вы можете сделать следующее, чтобы получить свой номер:

Установить регулярное выражение:

digits='[[:digit:]]+ *[[:digit:]]*'

и следующие две строки:

num=$(echo $line | grep -Eo "$digits")
num=${num// }

или эти:

# Bash >= 3.2 (syntax may be different for 3.0/3.1)
[[ $line =~ $digits ]]
num=${BASH_REMATCH[@]// }

для извлечения числа из переменной $line, содержащей строку в вашем вопросе.

Gnuplot должен быть легко доступен. Несколько примеров его вывода можно найти здесь .

Это от здесь .

example graph example graph

0 голосов
/ 07 декабря 2009

Всего один процесс (grep):

array=( $(grep whatever filename ) ) && echo  "${array[2]}${array[3]}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...