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:

  • 相关阅读:
    解压bz2包
    Linux获取客户端IP
    出现身份验证错误,要求的函数不受支持,远程计算机
    Ubuntu16.04.4 编译安装ssldump1.1
    windows远程桌面复制不了文件
    MySQL空间数据操作:GeomFromText()和astext()函数报错解决
    mysql中geometry类型的简单使用
    response header的Content-Disposition的inline的作用
    jooq的LocalDateTime转化成LocalDate
    java8 LocalDateTime时间格式化
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351861.html
Copyright © 2011-2022 走看看