#! /usr/bin/perl %mos = ( 'Jan' => '01', 'Feb' => '02', 'Mar' => '03', 'Apr' => '04', 'May' => '05', 'Jun' => '06', 'Jul' => '07', 'Aug' => '08', 'Sep' => '09', 'Oct' => '10', 'Nov' => '11', 'Dec' => '12' ); foreach my $f (@ARGV) { $fil2 = $f; $fil2 =~ s/.log$//g; open INFILE, "< ./$f\0"; while () { if (/^.... BEGIN LOGGING AT ([A-z]+) +([A-z]+) +([0-9]+) +([0-9]+):([0-9]+):([0-9]+) +([0-9]+)$/) { $mon = $2; chomp $mon; $day = sprintf("%02d", $3); $hour = sprintf("%02d", $4); $min = sprintf("%02d", $5); $sec = sprintf("%02d", $6); $year = $7; $mo = $mos{$mon}; close OUTFILE; open OUTFILE, "> ./$fil2-$year.$mo.$day.$hour:$min:$sec.log\0" } else { print OUTFILE $_; } } close INFILE; }