2013-01-06 62 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} 
  • 任何具有相同数量的请求和响应的事务都会得分为零。
  • 缺少一个响应的任何交易最终会以积极的得分。
  • 缺少请求的任何交易最终会以负分。