Tengo un gran conjunto de registros como se muestra a continuación:
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.
Me gustaría encontrar la diferencia horaria entre los eventos 'EVT_ISDN_SETUP' y 'Desconectar', esencialmente la duración de cada transacción. Para esto, primero necesito extraer la marca de tiempo de las líneas correspondientes y encontrar la diferencia. Probé el código Perlaquípara encontrar la diferencia para una instancia y funcionó bien. Mi tarea sería entonces obtener con éxito las marcas de tiempo entre los eventos interesados y luego alimentar el código Perl e imprimir la diferencia junto con TR#ID.
¿Cómo lo hago?
Respuesta1
Supuesto: por cada línea que contiene EVT_ISDN_SETUP
hay una línea que contiene Disconnect
un patrón. Déjame pegarte el 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 .