Здравствуйте форумчане ! :)) пожалуйста помогите решить головоломку
есть лог файл «SRV22_09_0.LOG» (который ротируется и создает новый «SRV22_10_0.LOG» каждый месяц) состоящий из строк:
09.09.2022 16:51:20 CONSOLA:9
09.09.2022 16:51:23 Init Com Eth(0):192.168.103.10:14101
09.09.2022 16:51:23 Open communication port
09.09.2022 16:51:24 Trying to establish communication with the controller
09.09.2022 16:51:24 KIT: GK7C-3 VERSION: V9.18 CPU NUMBER: CPA275595
09.09.2022 16:51:25 Established communication
09.09.2022 16:51:25 Sending date and hour
09.09.2022 16:51:26 COMMUNICATION: The controller has been synchronized.
09.09.2022 16:51:27 Receiving supplies
09.09.2022 16:52:25 Supplies correctly received
09.09.2022 16:52:27 Processed
09.09.2022 16:52:27 Sending users
09.09.2022 16:52:52 Users correctly sent
09.09.2022 16:52:52 Sending vehicles
09.09.2022 16:53:06 Vehicles correctly sent
09.09.2022 16:53:06 Sending controller configuration
09.09.2022 16:53:08 Controller configuration correctly sent
09.09.2022 16:53:08 Sending product configuration
09.09.2022 16:53:10 Product configuration correctly sent
09.09.2022 16:53:10 Sending tank configuration
09.09.2022 16:53:11 Tank configuration correctly sent
09.09.2022 16:53:11 Sending hose configuration
09.09.2022 16:53:13 Hose configuration correctly sent
09.09.2022 16:53:14 Disconnecting the controller
09.09.2022 16:53:15 Disconnected controller
09.09.2022 16:53:15 Close communication port
09.09.2022 16:53:15 CONSOLA:10
09.09.2022 16:53:18 Init Com Eth(0):192.168.105.10:14101
09.09.2022 16:53:19 Error init ethernet(0): Connect timed out.
09.09.2022 16:53:38 Init Com Eth(10):192.168.105.10:14101
09.09.2022 16:53:39 Error init ethernet(10): Connect timed out.
09.09.2022 16:53:59 Init Com Eth(20):192.168.105.10:14101
09.09.2022 16:54:00 Error init ethernet(20): Connect timed out.
09.09.2022 16:54:03 COMMUNICATION: It is not possible to open COM port. Ethernet:192.168.105.10:14101
09.09.2022 16:54:04 Disconnected controller
09.09.2022 16:54:04 Close communication port
09.09.2022 17:00:46 CONSOLA:3
09.09.2022 17:00:49 Init Com Eth(0):192.168.240.1:14101
09.09.2022 17:00:50 Error init ethernet(0): Socket Error # 10061
Connection refused.
09.09.2022 17:01:09 Init Com Eth(10):192.168.240.1:14101
09.09.2022 17:01:11 Error init ethernet(10): Socket Error # 10061
Connection refused.
09.09.2022 17:01:31 Init Com Eth(20):192.168.240.1:14101
09.09.2022 17:01:32 Error init ethernet(20): Socket Error # 10061
Connection refused.
09.09.2022 17:01:35 COMMUNICATION: It is not possible to open COM port. Ethernet:192.168.240.1:14101
09.09.2022 17:01:36 Disconnected controller
09.09.2022 17:01:36 Close communication port
мне нужно вытащить с этого файла блок последнего текста между строками, пример:
1-ая строка:
09.09.2022 16:51:24 KIT: GK7C-3 VERSION: V9.18 CPU NUMBER: CPA275595
последняя строка:
09.09.2022 16:53:13 Hose configuration correctly sent
это команда смотрит последние 45 строк:
tail -45 SRV22_09_0.LOG | awk '/CPA275595/,/Hose/' | grep -P "been synchronized|correctly sent|correctly received|CPA275595"
и если в них содержится данный блок то соответственно выводится на экран:
12.09.2022 16:30:01 KIT: GK7C-3 VERSION: V9.18 CPU NUMBER: CPA275429
12.09.2022 16:30:03 COMMUNICATION: The controller has been synchronized.
12.09.2022 16:31:01 Supplies correctly received
12.09.2022 16:31:27 Users correctly sent
12.09.2022 16:31:40 Vehicles correctly sent
12.09.2022 16:31:41 Controller configuration correctly sent
12.09.2022 16:31:43 Product configuration correctly sent
12.09.2022 16:31:44 Tank configuration correctly sent
12.09.2022 16:31:45 Hose configuration correctly sent
но проблема в том что очень часто в последние 45 строк попадает другие данные и соответственно ничего не выводится!
Какое есть решение данного вопроса?????
и еще файл каждый месяц ротируется и создает новый с новым названием и как-то не айс раз в месяц переделывать команду