こらない

2008-06-11(水)

Perlでファイルを更新日時順にソートして表示

Perlで、あるディレクトリの中のファイルを更新日時順にソートして表示するコードのメモ。

古い順

my $dir = '/Users/officek/Desktop/test';
$dir
=~ s/\/$//;
opendir DIR
, $dir;
my @files
=
    map
{ $_->[0] }
    sort
{ $b->[1] <=> $a->[1] }
    map
{ [ $_, -M "$dir/$_" ] }
    grep
( /^[^.]/, readdir DIR );
close DIR
;

for my $file(@files){
    my
($ss, $mm, $hh, $DD, $MM, $YY, $wday, $yday, $isdst) = localtime( ( stat qq|$dir/$file| )[9] );
    $YY
+= 1900;
    $MM
++;
    printf
"%s\t%d-%02d-%02d %02d:%02d:%02d
"
, $file, $YY, $MM, $DD, $hh, $mm, $ss;
}

新しい順

sortのところを、入れ替える。

    sort { $a->[1] <=> $b->[1] }

コメント

    名前:

    ※改行は削除されます。