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

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

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

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.

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

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

решение1

Предположение: Для каждой строки, содержащей 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 .

Связанный контент