perl日志分析,求平均值

songoex 发布于 2016/10/19 22:04
阅读 138
收藏 0

现在有一个日志文件要统计,内容大概是这样的:

numbs:1234 start

something in english

numbs:1256 end

something in english

..........................

有100万行

现在要做的是把关键字end那个1256减去关键字start的那个1234,每两行相减然后求平均值。

我的想法是先逐行匹配关键字,然后分割字符串。再设置行号为偶数行的后面一行的数字减去前面一行的数字,把结果累加再除以行号得到平均值。但是代码的应该怎么写?因为突然被要求要做这个,但是我对编程不熟,请各位不吝赐教。

加载中
0
yak
yak
$start=$end=undef;
$cnt=$sum=0;
open DATAFILE,'datafile.dat';
while (<DATAFILE>){
    
    $start=$1 if /numbs:(\d+) start/;
    $end=$1 if /numbs:(\d+) end/;
    
    if($start && $end){
        
      $cnt++;
      $sum+=$end-$start;
      $start=$end=undef;
       
    }
}
print $sum/$cnt;



返回顶部
顶部