1

特定のdirnameを見つける必要があります。latest-fileをgrepするコードがあります。perlスクリプトでls-ltrコマンドを使用せずに、誰かがls -ltrdirname*を見つけるのを手伝ってもらえますか。以下のコードが役立つ場合があります。

my $dir = "/abc/pqr/xyz";
opendir(my $DH, $dir) or die "Error opening $dir: $!";
my %files = map { $_ => (stat("$dir/$_"))[9] } grep(! /^\.\.?$/, readdir($DH));
closedir($DH);
my @sorted_files = sort { $files{$b} <=> $files{$a} } (keys %files);
print "the file is $sorted_files[0] \n";

/ abc / pqr/xyzでディレクトリ名をnew_123として見つける必要があります。ls -ltr new *として、これらのディレクトリは毎日作成されるため、new*を探します。

4

1 に答える 1

0

あなたが何を求めているのか少し不明確ですが、

/abc/pqr/xyz で new_123 というディレクトリ名を見つける必要があります。ls -ltr new* として、これらのディレクトリは毎日作成されるため、new* を探します。

そのために、 globを使用できます。

私のPERLは少し錆びていますが、これでうまくいくと思います:

while (my $dir = glob("new*")) {

        next unless (-d "$dir");
        print "$dir\n";

}

システム コールが制限されていない場合は、find を使用できます。

find /some/path/ -type d -name "new*"

于 2012-08-27T05:34:13.647 に答える