我正在尝试组装一个脚本,该脚本将首先识别在文件夹下创建的最新日志文件,然后打开它并查找特定数据。基本上,我将在此日志文件中查找特定错误并将错误打印到新日志文件中。
我了解如何执行排序以获得最新文件,但在读取最新文件并将其复制到新日志文件时遇到问题
use File::stat;
$dirname = 'C:/Luntbuild_Logs';
$timediff = 0;
opendir DIR, "$dirname";
while ( defined( $file = readdir(DIR) ) ) {
if ( $file ne "." && $file ne ".." ) {
$diff = time() - stat("$dirname/$file")->mtime;
if ( $timediff == 0 ) {
$timediff = $diff;
$newest = $file;
}
if ( $diff < $timediff ) {
$timediff = $diff;
$newest = $file;
}
}
}
print $newest;
$file1 = "$dirname/$file";
open( FILE1, "<$newest" );
my (@fprint) = <FILE1>;
close FILE1;
open( FOUT, ">list1.txt" ) || die("Cannot Open File");
foreach $line (@fprint) {
print "$line" if $line =~ /> @/;
print "$line" if $line =~ /ORA-/;
print FOUT $line;
}
close FOUT;