-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 に答える