我的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";
}
}
预先感谢
答案 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