-1

我想处理子目录中存在的所有文件(以 开头proc和结尾)。log

我试过下面的代码:

$InputDir:我从命令行获取这个:

find(
  sub { print $File::Find::name, "\n" if /Proc(.*)log$/ },
  $InputDir
);

我想获取所有文件以及数组中的完整路径。

4

2 回答 2

2

存储文件名而不仅仅是打印它们,请将它们推送到数组中:

my @files;
find(
  sub {
    push @files, $File::Find::name if -f and /^proc.*log$/i;
  },
  $InputDir
);

print "$_\n" for @files;

检查找到的-f and项目是文件,而不是目录。

于 2013-08-21T06:21:39.397 回答
1

这听起来像是File::Find::Rule的任务

use File::Find::Rule ;

my @files = File::Find::Rule->file()
                          ->name( 'Proc.*log' )
                          ->in( $InputDir  );
于 2013-08-21T06:36:08.153 回答