Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Подсчет времени по определённому событию

Ответить
Настройки темы
Подсчет времени по определённому событию

Пользователь


Сообщения: 51
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день! помогите пожалуйста с задачкой:
Есть лог типа:
Код: Выделить весь код
Mar  2 18:18:44 kiosk-1: 2021-03-02 18:18:44.346431826 I fr_prim [JAM/drivers.cpp:1038] run() Устройство в работе.
Mar  2 18:19:35 kiosk-1: 2021-03-02 18:19:35.934731823 I fr_prim [JAM/drivers.cpp:1038] run() Устройство в работе.
Mar  2 18:20:52 kiosk-1: 2021-03-02 18:20:52.946473447 E fr_prim [JAM/drivers.cpp:2058] run() Фатальная ошибка.
Mar  2 18:25:23 kiosk-1: 2021-03-02 18:25:23.347744464 E fr_prim [JAM/drivers.cpp:2058] run() Фатальная ошибка.
Mar  2 18:35:56 kiosk-1: 2021-03-02 18:35:56.767657337 E fr_prim [JAM/drivers.cpp:2058] run() Фатальная ошибка.
Mar  2 18:40:12 kiosk-1: 2021-03-02 18:40:12.947768633 E fr_prim [JAM/drivers.cpp:2058] run() Фатальная ошибка.
Mar  2 18:45:11 kiosk-1: 2021-03-02 18:45:11.125152521 I fr_prim [JAM/drivers.cpp:1038] run() Устройство в работе.
Mar  2 18:56:49 kiosk-1: 2021-03-02 18:56:49.232363215 I fr_prim [JAM/drivers.cpp:1038] run() Устройство в работе.
Необходимо:
1) первый запрос должен посчитать кол-во событий "E fr_prim". Одно событие - это первая строка "E fr_prim" и до первой строки "I fr_prim" и т.д. до конца лога.
2) Второй запрос должен посчитать сколько суммарно по времени продлились события "E fr_prim".


По возможности задачку хотелось бы решить с помощью grep, sed, awk и т.д.

Отправлено: 11:26, 08-03-2021

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6577
Благодарности: 1508

Профиль | Отправить PM | Цитировать


Сами-то пытались?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 22:49, 10-04-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Решение "в лоб".
Код: Выделить весь код
#!/usr/bin/env bash
x=`awk -F'[. ]' '$9 == "E" {
  cmd = "date -d \"" $6 " " $7 "\" +%s"
  cmd | getline ts
  close(cmd)

  printf ":%d", ts
  next
} NR > 1 {print ""}{p=$9}' msg.txt | awk '{
  system("echo \"("$NF"-"$2") / 60\" | bc 2>/dev/null")
}' FS=\:`
echo "Number of events: `sed -n '$=' <<< $x`   Events durations:" $x

Отправлено: 18:34, 13-06-2021 | #3



Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Подсчет времени по определённому событию

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Удаление информации по событию interminable Хочу все знать 26 22-02-2015 23:10
CMD/BAT - [решено] подсчет времени выполнения командного файла mitiya Скриптовые языки администрирования Windows 5 15-04-2014 10:42
2010 - [решено] Подсчет отработанного времени se0ga Microsoft Office (Word, Excel, Outlook и т.д.) 3 14-06-2013 18:38
Zoneminder + Gnokii - как настроить звонок по событию? deepaer0 Программное обеспечение Linux и FreeBSD 1 02-06-2010 22:12
подсчет времени выполнения скрипта на PHP Vlad Drakula Вебмастеру 2 13-10-2003 16:20




 
Переход