处理子目录中存在的所有文件

时间:2013-08-21 05:45:26

标签: perl

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

我试过下面的代码:

$InputDir:我从命令行接受这个:

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

我想将所有文件与数组中的完整路径一起使用。

2 个答案:

答案 0 :(得分:2)

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

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

print "$_\n" for @files;

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

答案 1 :(得分:1)

这听起来像File::Find::Rule

的任务
use File::Find::Rule ;

my @files = File::Find::Rule->file()
                          ->name( 'Proc.*log' )
                          ->in( $InputDir  );