Извлеките метки времени и найдите разницу

У меня есть большой набор журналов, как показано ниже:

June 5 15:51:56.606 [3997]: TR#153. State machine - state = CC_STATE_IDLE, event = EVT_ISDN_SETUP June 5 15:51:56.607 [3997]: TR#153): SC registration SUCCESS. June 5 15:52:00.368 [3997]: TR#153. DSP:4 Channel:26 Type: Modem State: Data June 5 15:52:01.837 [3997]: TR#153. Receive transaction data: prot 1 data length: 159.-------------------->> June 5 15:52:02.073 [3997]: TR#153. Send transaction data: 55 <<------------------- June 5 15:52:04.361 [3997]: TR#153):Disconnect initated by 32 process. June 5 15:52:57.382 [3997]: TR#153. State machine - state = CC_STATE_IDLE, event = EVT_ISDN_SETUP June 5 15:52:57.383 [3997]: TR#153): SC registration SUCCESS. June 5 15:53:01.327 [3997]: TR#153. DSP:4 Channel:26 Type: Modem State: Data June 5 15:53:04.291 [3997]: TR#153. Receive transaction data: prot 1 data length: 347.-------------------->> June 5 15:53:05.071 [3997]: TR#153. Send transaction data: 103 <<------------------- June 5 15:53:06.209 [3997]: TR#153. Receive transaction data: prot 1 data length: 24.-------------------->> June 5 15:53:07.239 [3997]: TR#153):Disconnect initated by 32 process. 

Я хотел бы найти разницу во времени b / w событий EVT_ISDN_SETUP и «Disconnect», по сути, каждую продолжительность транзакций. Для этого мне нужно сначала извлечь метку времени из соответствующих строк и найти разницу. Я попробовал код Perl здесь, чтобы найти разницу для одного экземпляра, и он работал нормально. Моя задача состояла бы в том, чтобы успешно получить отметки времени b / w интересующие события, а затем передать код Perl и распечатать разницу вместе с идентификатором TR #.

Как мне это сделать?

Предположим: для каждой строки, содержащей EVT_ISDN_SETUP есть строка, содержащая шаблон Disconnect . Позвольте мне вставить вам алгоритм:

  Get the time field for the line matching `EVT_ISDN_SETUP` pattern and put it to temp1 file Get the time field for the line matching `Disconnect`pattern and put it to another file say temp2. Using paste command put the content of both the files to another file say temp3. Read every line of the temp3 and pass first & 2nd field your perl script .