2013-01-06 92 views
0

後字符串的第一次出現,我解析與Perl中的PCAP文件。我有要求和答覆。我想查找所有未完成的交易(請求沒有回覆)。我的要求看起來像 ReqInfo,ReqData,ReqMsg和響應RespInfo,RespData,RespMsg。我已經完成了Req和Resp的基本計數。請求的數量大於響應1.它是大文件,不能確定錯過了哪個請求。我只管理了匹配的perl

perl -lne 'END {print $c} map ++$c, /ReqInfo/g' file.pcap 

請求和響應由transactionID捆綁在一起。我計劃在每次成功的ReqInfo之後將transactionID添加到數組,並在每個RespInfo匹配後從數組中刪除transactionID。整個搜索後,我期待數組具有所有孤兒事務ID的列表。因爲它是pcap文件,所以沒有分隔符的規則。我可以在單行一堆詢價或在單獨的行或零散的數據中的每一所需物品多行

進出口尋找方式ReqInfo後發現TRANSACTIONID 1日一次出現。我可以在單行一堆ReqInfo或每個ReqInfo在單獨的行中的或片段的數據在多行

+0

使用散列,不是數組 – ysth

+0

編輯的細節 –

回答

1

在發現的請求,

++$c{$tran_id} 

在發現的響應,

--$c{$tran_id} 
  • 任何具有相同數量的請求和響應的事務都會得分爲零。
  • 缺少一個響應的任何交易最終會以積極的得分。
  • 缺少請求的任何交易最終會以負分。