zoukankan      html  css  js  c++  java
  • Perl 懒惰匹配

    [grid@devrac1 ~]$ cat sum.pl 
    if ( $#ARGV < 0 ){  
            print "please input your file! ";
            exit(-1);  
        } 
    $logfile= $ARGV[0];  
    my %log;
    open (LOG ,"<","$logfile");
    while (<LOG>) {
    chomp;
    if ($_ =~ /^[[seri(.*)(d{1,3}.d{1,3}.d{1,3}.d{1,3})/){
    print "$1 is $1 ";
    $var= (split /_/, (split /:/,$_)[2])[0];
    $log{$var}++;
    }
    }
    #print  %log;
    while(my($ip, $times) = each %log) {
         print "$ip  $times ";
         }
    [grid@devrac1 ~]$ perl sum.pl 1.log
    $1 is :288i19BF:122.96.47.8_se[[seri:288i19BF:12
    $1 is :288i19BF:122.96.47.8_se[[seri:288i19BF:12
    $1 is :288i19BF:122.96.47.8_se[[seri:288i19BF:12
    $1 is :288i19BF:192.96.47.8_se[[seri:288i19BF:19
    192.96.47.8  1
    122.96.47.8  3




    这里直接贪婪的匹配到了:288i19BF:192.96.47.8_se[[seri:288i19BF:19
    -----------------------------------------------------------------


    [grid@devrac1 ~]$ cat sum.pl 
    if ( $#ARGV < 0 ){  
            print "please input your file! ";
            exit(-1);  
        } 
    $logfile= $ARGV[0];  
    my %log;
    open (LOG ,"<","$logfile");
    while (<LOG>) {
    chomp;
    if ($_ =~ /^[[seri(.*?)(d{1,3}.d{1,3}.d{1,3}.d{1,3})/){
    print "$1 is $1 ";
    $var= (split /_/, (split /:/,$_)[2])[0];
    $log{$var}++;
    }
    }
    #print  %log;
    while(my($ip, $times) = each %log) {
         print "$ip  $times ";
         }
    [grid@devrac1 ~]$ perl sum.pl 1.log
    $1 is :288i19BF:
    $1 is :288i19BF:
    $1 is :288i19BF:
    $1 is :288i19BF:
    192.96.47.8  1
    122.96.47.8  3


    这里匹配到第一个就停止了


    [grid@devrac1 ~]$ cat 1.log 
    [[seri:288i19BF:122.96.47.8_se[[seri:288i19BF:122.96.47.8ssionid:
    [[seri:288i19BF:122.96.47.8_se[[seri:288i19BF:122.96.47.8ssionid:
    [[seri:288i19BF:122.96.47.8_se[[seri:288i19BF:122.96.47.8ssionid:
    [[seri:288i19BF:192.96.47.8_se[[seri:288i19BF:192.96.47.8ssionid:

  • 相关阅读:
    IPython notebook(Jupyter notebook)指定IP和端口运行
    spark-2.2.0安装和部署——Spark集群学习日记
    安装Scala-2.11.7——集群学习日记
    hadoop2.7.3在centos7上部署安装(单机版)
    Centos7下面配置静态IP
    css 3列
    css 日历组件(浮雕效果)
    if(!document.getElementById) return false; JS里这句是什么意思?
    网页中图片路径错误时显示默认图片方法
    css3 图片放大缩小闪烁效果
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351861.html
Copyright © 2011-2022 走看看