Extraia carimbos de data/hora e encontre a diferença

Extraia carimbos de data/hora e encontre a diferença

Eu tenho um grande conjunto de logs, conforme mostrado abaixo:

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.

Gostaria de encontrar a diferença de horário entre os eventos 'EVT_ISDN_SETUP' e 'Disconnect', essencialmente a duração de cada transação. Para isso, preciso primeiro extrair o carimbo de data/hora das linhas correspondentes e encontrar a diferença. Eu tentei o código Perlaquipara encontrar a diferença para uma instância e funcionou bem. Minha tarefa seria então obter com êxito os carimbos de data e hora dos eventos interessados ​​e, em seguida, alimentar o código Perl e imprimir a diferença junto com TR#ID.

Como proceder?

Responder1

Suposição: Para cada linha contendo EVT_ISDN_SETUPexiste Disconnectum padrão contendo uma linha. Deixe-me colar o algoritmo:

  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 .

informação relacionada