У меня есть вывод, который выглядит так:
BEGIN newcomm stat for rufarm102
__________________________________________________________________________________
ibfarm102 localtick Boston hibmis100 procHKHD2 Hongkong PidMonRsp
ibfarm102 localtick London stopsrv1 proceu8 Zug PidMonRsp
ibfarm102 localtick Greenwich hibmis100 procHKHD2 Hongkong PidMonReq
ibfarm102 localtick New York stopsrv1 proceu8 Zug PidMonReq
END : ibfarm102 newcomstat
и я запускаю его через этот скрипт:
#!/usr/bin/perl
open (REPORT , "/home/data/report20110801130041");
while (<REPORT>){
if ($_ =~ /BEGIN/){
print $_ ;
}
if ($_ =~ /END/){
print $_;
}
if ($_ =~ /OCOMsg2/){
use Term::ANSIColor;
print color 'red';
($config_host , $config_process, $config_region, $stat_host, $stat_process, $stat_host_region, $stat_message_class) = split(/\s+/, $_ );
printf "%-15s %-10s %10s %15s %-10s %-8s %10s", $config_host , $config_process, $config_region, $stat_host, $stat_process, $stat_host_region, $stat_message_class ;
print color 'reset';
print "\n";
}
else{
($config_host, $config_process, $config_region, $stat_host, $stat_process, $stat_host_region, $stat_message_class) = split(/\s+/, $_ );
printf "%-10s %-10s %10s %15s %-10s %-8s %10s", $config_host , $config_process, $config_region, $stat_host, $stat_process, $stat_host_region, $stat_message_class ;
print "\n";
}
}
Я стараюсь пропустить строки BEGIN и END, но они выводятся дважды, и
Я попытался пропустить начало и конец несколько раз, несколькими разными способами. Я не
нужно, чтобы строки BEGIN и END были разделены и отформатированы в printf.
BEGIN newcomm stat for ibfarm102
BEGIN newcomm stat for ibfarm102
ibfarm102 localtick Greenwich hibmis100 procHKHD2 Hongkong PidMonRsp
ibfarm102 localtick Greenwich stopsrv1 proceu8 Zug PidMonRsp
ibfarm102 localtick Greenwich hibmis100 procHKHD2 Hongkong PidMonReq
ibfarm102 localtick Greenwich stopsrv1 proceu8 Zug PidMonReq
END : ibfarm102 newcomstat
END : ibfarm102 newcomstat