タイムスタンプの抽出と違いの検索

タイムスタンプの抽出と違いの検索

次のような大規模なログセットがあります。

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コードを試してみました。ここ1つのインスタンスで違いを見つけるのに効果的です。私の使命は、関心のあるイベントのタイムスタンプを正常に取得し、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 .

おすすめ記事