我需要一个Regex表达式来验证找到的文件是否以file::Find::Name中的特定字母开头



我有下面的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)

相关内容

最新更新