Thread zeilen aus datei sortiert ausgeben (6 answers)
Opened by Gast at 2006-09-07 13:08

renee
 2006-09-07 13:15
#69547 #69547
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Klar. Dafür gibt es sort

Einfache (Speicherintensive) Variante:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/perl

use strict;
use warnings;

# Dateiname
my $file = '/path/to/file.txt';

# öffne Datei zum lesen
# bei Fehler, gib die Fehlermeldung aus
open(my $fh,"<",$file) or die $!;

# lies die Zeilen ein
my @lines = <$fh>;

close $fh;

# sortiere die Zeilen aufsteigend (a-z)
@lines = sort{$a cmp $b}@lines;

# gib die Zeilen aus
print $_,"\n" for(@lines);


Das mit
Code: (dl )
1
2
my @lines =<$fh>;
@lines = sort{$a cmp $b}@lines;
kann auch kürzer geschrieben werden:
Code: (dl )
my @lines = sort{$a cmp $b}<$fh>;



Die Variante ist weniger speicherintensiv (sortiert aber die Zeilen direkt in der Datei):
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl

use strict;
use warnings;
use Tie::File;

my $file = '/path/to/file.txt';

tie my @array,'Tie::File',$file or die $!;
@array = sort{$a cmp $b}@array;
print $_,"\n" for(@array);
untie @array;
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/

View full thread zeilen aus datei sortiert ausgeben