Thread Dateien im verzeichnis der reihe nach abarbeiten (10 answers)
Opened by Marc at 2011-04-05 07:51

rosti
 2011-04-05 09:58
#147383 #147383
User since
2011-03-19
3206 Artikel
BenutzerIn
[Homepage]
user image
2011-04-05T07:41:51 GwenDragon
Ich habe das mal getestet. Wenn die Schwarzsche Transformation verwendet wird, kann sich das im Vergleich zur numerischen Sortierung um den eine Verschnellerung von 10:1 handeln. Insofern ist die Verwendung sinnvoll.


Sehr schön, danke!!!

Nach 'Schwartz' bietet sich hier förmlich an, damit ist auch der Code leicht geändert, wenn nach einem anderen Kriterium sortiert werden soll. Beispiel untenstehend sortiert nicht nach dem numerischen Wert, sondern aufsteigend nach dem Literal, was nach dem '_' steht:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use warnings;
use strict;

my @files = qw(
        3_xy.txt
        10_foo.txt
        2_bar.txt
        1_foobar.txt
        5_anton.txt
        7_berta.txt
        9_claus.txt
);

@files =
        map  { join('_', $_->[0], $_->[1]) }
        sort { $a->[1] cmp $b->[1] }
        map  { [/^(.*)_(.*)$/]  } @files;

foreach my $file (@files){
        print "$file\n";
}


Anstelle split() eine Expression in Zeile 17.

Edit:

Auf den join() können wir auch verzichten:

Code (perl): (dl )
1
2
3
4
@files =
        map  { $_->[0].'_'.$_->[1] }
        sort { $a->[1] cmp $b->[1] }
        map  { [/^(.*)_(.*)$/]  } @files;



Viele Grüße,
Rolf

PS: Frühstück ;)
Last edited: 2011-04-05 10:03:37 +0200 (CEST)

View full thread Dateien im verzeichnis der reihe nach abarbeiten