Парсер времени (для bash скрипта)

Модератор: Модераторы разделов

rydj
Сообщения: 27

Парсер времени

Сообщение rydj »

Добрый день.
Подскажите а как сделать нормальный парсер по времени для команды:
ps -eo pid,etime,user,args |awk '{print $2 }'
мне надо написать палилку процессов по времени для этого мне нужно присваивать значения переменным MIN, HH,Days.
С днями всё понятно можно сделать проверку по знаку "-" если он есть то берем число перед ним:
DAYS=$(ps -eo pid,etime,user,args |grep "frxUP" |awk '{if($2 ~/-/){sub("-.*","",$2);print}}')

А вот с часами и минутами проблематично надо как-то анализировать сколько двоеточий стоит и правильно их распарсить. Поможете?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21352
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Парсер времени

Сообщение Bizdelnick »

К чему такие сложности? почему нельзя вместо etime взять etimes?

Upd. А, Вы всё о том же? bash Вычисление времени работы процесса
Зачем было новую тему создавать? Тем более что там в конце подсказали вполне рабочее решение.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Парсер времени

Сообщение drBatty »

Код: Выделить всё

ps -eo %t | sed -rn 's/\s+//g;s/^([[:digit:]]{2}:[[:digit:]]{2})$/00:\1/;s/^(([[:digit:]]{2}:){2}[[:digit:]]{2})$/0-\1/;p'
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
rydj
Сообщения: 27

Re: Парсер времени

Сообщение rydj »

А сами числа как подцепить?
Я знаю только сложный способ проверить если работает меньше суток то с помощью cut а проще можно?=)
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Парсер времени

Сообщение drBatty »

rydj писал(а):
16.01.2014 16:51
Я знаю только сложный способ проверить если работает меньше суток то с помощью cut а проще можно?=)

Код: Выделить всё

 IFS="-:"
 S="0-20:33:06"
 A=( $S )
 echo ${A[@]}
0 20 33 06
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
rydj
Сообщения: 27

Re: Парсер времени

Сообщение rydj »

оо круто спасибо
Спасибо сказали: