Thread höchste dateinamen verzeichnis
(7 answers)
Opened by thorben at 2011-02-08 16:45
ungetestet
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 my $dir = '/path/to/dir'; my %files; my @keep; my @to_delete; opendir my $dir_h, $dir or die "Can't open directory $dir: $!"; while ( my $entry = readdir $dir_h ) { # hole den namen und den "counter" my ($name,$counter) =~ $entry =~ m{ (.*?) ([a-z]) \.txt }x; # wenn es keine Datei mit dem Muster ist, mache einfach mit # der nächsten Datei weiter next if !($name and $counter); # speichere den namen und das "zählkürzel" # $files->{TestA002}->{a} = 1 $files{$name}->{$counter} = 1; } closedir $dirh; # laufe über die Namen (z.B. TestA001, TestA002, ...) for my $name ( keys %files ) { # sortiere die "zählkürzel" absteigend. Das "höchste" wird in # $keep gespeichert, der Rest in @delete my ($keep,@delete) = sort{ $b cmp $a }keys %{ $files{$name} }; # setze den Dateinamen wieder zusammen und speichere es in @keep push @keep, "$name$keep.txt"; # für jedes andere Zählkürzel wird der Dateiname zusammengesetzt und # in @to_delete gespeichert. push @to_delete, map{ "$name$_.txt" }@delete; } print "Keep: @keep\nDelete: @to_delete\n"; Editiert von renee: Einige Kommentare hinzugefügt Last edited: 2011-02-08 16:59:19 +0100 (CET) OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/) -- Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html Perl-Entwicklung: http://perl-services.de/ |