|
Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Подсчет времени по определённому событию |
|
Подсчет времени по определённому событию
|
Пользователь Сообщения: 51 |
Профиль | Отправить 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 |
fascinating rhythm Сообщения: 6585
|
Профиль | Отправить PM | Цитировать Сами-то пытались?
|
------- Отправлено: 22:49, 10-04-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Забанен Сообщения: 793
|
Решение "в лоб".
#!/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 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Удаление информации по событию | 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 |
|