我有下面的find例程,它在目录和子目录中搜索超过5天的文件并将其删除。
{
find (sub {my $filename = $File::Find::name;
if ( -f $filename ) {
my $filetime = (stat "$filename")[9];
my ($sec, $min, $hour, $day, $month, $year) = (localtime($filetime))[0,1,2,3,4,5];
if ($now - $fivedaystime > $filetime){
push (@file_list, $filename);
}
}
}, $pslog_directory);
}
这一切都很好,但现在我需要删除超过5天的文件,并以字符"日志"开头。
我想添加一个正则表达式,但我想不出写正则表达式的正确方法。我去了几个regex网站,有很多信息我需要研究,但我很快就需要这个了。这是我尝试过的,但它不起作用,因为当目录中有许多以"Log"开头的文件时,它找不到任何要删除的文件:
if(-f$filename和$filename=~'^Log')
感谢您提前提供的帮助。
如果您使用Perl,语法为:
if ((-f $filename) and ($filename =~ /^Log/))
如果你希望它是不区分大小写的使用:
($filename =~ /^Log/i)