Patrick Andrieu: Dateiinhalt sortiert ausgeben

Beitrag lesen

Hallo Manfred!

hans.3.dort
peter.1.drüben
ich.8.unten
du.19.oben
wir.3.woanders
usw
Jetzt möchte ich mir die Zeilen anzeigen lassen sortiert nach der Zahlengröße also ähnlich wie eine rangliste.
Ich bekomm es einfach nicht hin könntet ihr mir bitte nochmal helfen?

Wenn es Dir nur darum geht, die Zeilen anhand der enthaltenen Zahl zu sortieren, hilft die Schwartz'sche Transformation (Schwartzian Transform):

C:>perl -w

my @ar = <DATA>;  
@ar = map { $_->[0] }  
      sort { $a->[1] <=> $b->[1] }  
      map { [ $_, ( /(\d+)/ )[0] ] } @ar;  
foreach (@ar) {print $_}  
  
__DATA__  
hans.3.dort  
peter.1.drüben  
ich.8.unten  
du.19.oben  
wir.3.woanders

Ausgabe:

peter.1.drüben
hans.3.dort
wir.3.woanders
ich.8.unten
du.19.oben

Wenn die Zahlen zuerst erscheinen müssen (z.B. 1.peter.drüben) kannst Du das Ergebnis-Array nach Belieben erneut manipulieren.

@Beat: Kennst Du die Schwartz'sche Trafo genau so wenig wie Hotte?

Viele Grüße aus Frankfurt/Main,
Patrick

--
_ - jenseits vom delirium - _

   Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?