Perl 打印特定行日志

#!/usr/bin/perl 
$dir='/home/websphere/WebSphere/AppServer/profiles/AppSrv01/logs/server1';
$file = 'SystemErr.log';
$mon_file="$dir/$file";
print "$mon_file is $mon_file
";
@warn_arr = qw/连接已关闭 NullPointException IndexOutOfBound/;
foreach $a  (@warn_arr){
   open (C,"<","$a.tmp")  ;
         while (<C>){   
                       $count  = $_;   
                                             }   
         print "$count is $count
";   
                                                                                      
         $info =`tac $mon_file  |  grep "$a" | head -1`;   
                                                                                                                      
         open (A ,"<","$mon_file") || die "$!
";   
$i=0;
while (<A>) {  
        $num++; 
       if ($_ =~ /$a/i){$i++;$b=$num};
       };   

      if ( $i !=0 && $i != $count && defined($count)) {
    open (B ,"<","$mon_file") || die "$!
";
   while  (<B>) {
  print $_  if ($.>=$b and $.<=$b + 10) }};
                                                                                                                                                                                            open (C,">","$a.tmp");
                                                                                                                                                                                             print C ("$i
"); 

                                                                                                                                                                                             }

原文地址:https://www.cnblogs.com/hzcya1995/p/13351823.html