[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: