【发布时间】:2017-06-19 17:14:44
【问题描述】:
我曾尝试删除与数字一起命名的文件,但在我的代码中没有发生。这里 $output 是我的目录位置。该目录包含多个文件夹和子文件夹。
从该文件夹和子文件夹中,我想选择我的 .ml 文件。在其中列出唯一名为 .ml 的 aplhabets 文件。
如果文件名类似(ev4.html、ev8.html等应该省略)。
因为这里的文件名伴随着数字,所以我想排除曾经与数字一起命名的文件并打印例外的输出。
这是我的代码:
use strict;
use warnings;
use File::Find::Rule;
my $output="/home/location/radio/datas";
my @files=File::Find::Rule->file()
->name('*.ml')
#->name(qr/\^ev\d+/)->prune->discard
->in($output);
for my $file(@files)
{
print "file:$file\n";
}
得到的输出:
file:/dacr/dacr.ml
file:/DV/DV.ml
file:DV/ev4/ev4.ml
预期输出:
file:/dacr/dacr.ml
file:/DV/DV.ml
【问题讨论】:
-
您的代码缺少
$output变量。你在谈论数字,但唯一与数字稍微相关的东西被注释掉了。请edit 并更具体地说明您想要做什么。 -
你的英语很难懂。是谷歌翻译的吗?我认为您的意思是:不要在名称中包含带有数字的文件。对吗?
-
注释代码中的正则表达式错误。我会写一个答案。
-
是的,你是对的@simbabque
-
而
prune正在丢弃所有内容。给我几分钟。
标签: perl