perl-如果通配符存在文件?

时间:2018-08-20 02:07:25

标签: perl file-exists

我的PERL有点生锈,所以请耐心等待。

我需要验证文件是否存在,但是文件名更改了……至少由于追加时间(hh-mm-ss),文件nae的最后一部分确实发生了。

因此,基本上,我需要查看yyyy-MM-dd-hh-mm-ss文件是否存在,无论hh-mm-ss是什么。 我正在尝试进行通配符搜索,但找不到文件。 例如,我要检查文件/ home / httpd / doc / $ user / $ year / 2018-08-20- *是否存在? 是否可以将*用作文件名变量?或者还有其他更好的方法?请帮助我。

我正在尝试检查文件是否存在,但带有通配符。这是我的代码:

opendir(DIR, "/home/httpd/doc/$user/2018") || die "Unable to open log/location";
while(<>){
    if($_ =~ /\/2018-08-20-\d+-\d+-\d+/) {
        print "file exists\n";
      }
 }

预先感谢

1 个答案:

答案 0 :(得分:1)

您似乎正在尝试使用adaptiveThreshold-opendir模式,看起来像

readdir

但更简洁的方法(使用更多的边缘情况,但可能会适合您的情况)将使用opendir(DIR, "/home/httpd/doc/$user/2018") || die "Unable to open log/location"; foreach my $file (readdir DIR) { if ($file =~ /\/2018-08-20-\d+-\d+-\d+/) { print "file exists\n"; } } closedir DIR;

glob