フォルダーの下に作成された最新のログ ファイルを最初に識別し、それを開いて特定のデータを探すスクリプトを作成しようとしています。基本的に、このログ ファイルで特定のエラーを探し、エラーを新しいログ ファイルに出力します。
最新のファイルを取得するために並べ替えを実行する方法は理解していますが、最新のファイルを読み取って新しいログ ファイルにコピーするのに問題があります。
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;