Zeitstempel extrahieren und den Unterschied finden

Zeitstempel extrahieren und den Unterschied finden

Ich habe einen großen Satz an Protokollen, wie unten gezeigt:

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.

Ich möchte die Zeitdifferenz zwischen den Ereignissen „EVT_ISDN_SETUP“ und „Disconnect“ ermitteln, also im Wesentlichen die Dauer jeder Transaktion. Dazu muss ich zuerst den Zeitstempel aus den entsprechenden Zeilen extrahieren und die Differenz ermitteln. Ich habe den Perl-Code ausprobiertHierum den Unterschied für eine Instanz zu finden, und es hat gut funktioniert. Meine Aufgabe wäre es dann, erfolgreich die Zeitstempel zwischen den interessierenden Ereignissen zu erhalten und sie dann in Perl-Code einzuspeisen und den Unterschied zusammen mit TR#ID auszudrucken.

Wie gehe ich vor?

Antwort1

Annahme: Für jede Zeile, die ein Muster enthält, EVT_ISDN_SETUPgibt es eine Zeile, die Disconnectein Muster enthält. Ich füge Ihnen den Algorithmus ein:

  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 .

verwandte Informationen