Thread Regex ausdrücke und bestimmte Zeile machen Probleme
(12 answers)
Opened by orlando2016 at 2015-04-29 19:49
Was Du willst, ist nicht so ganz einfach, und Du bist leider noch sehr weit davon entfernt. Das kann man z.B. so machen:
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 39 40 41 42 43 44 45 46 47 48 #!/usr/bin/perl use warnings; use strict; my $infile; my $outfile; my $i; my $u; open($infile, '<', 'Beispiel_Liste.txt') or die "$!"; my @a = <$infile>; close($infile); my @b = (); my %h; foreach $i (@a) { chomp($i); if ($i eq "") { if ($#b >= 1 && $b[1] =~ /Geburtuhrzeit/) { $h{$b[0]} = []; foreach $u (1 .. $#b) { push($h{$b[0]}, $b[$u]); } } @b = (); next; } push(@b, $i); } my @k = sort(keys(%h)); open($outfile, ">", "Sortiert.txt") or die "$!"; foreach $i (@k) { print "$i\n"; print $outfile "$i\n"; my @harr = @{$h{$i}}; foreach $u (@harr) { print "$u\n"; print $outfile "$u\n"; } print "\n"; print $outfile "\n"; } close($outfile); Wenn die Eingabedatei sehr groß ist und Du sie also nicht insgesamt in ein Array lesen willst, müßte man zusätzlich noch mit dem Modul Tie::File arbeiten, aber das wäre vom Code her auch nicht viel anders (weil Tie::File ebenfalls als Ausgangspunkt ein Array liefert). |