Thread Datei nach Zeichen durchsuchen
(15 answers)
Opened by Emeto at 2011-07-01 18:09
Wenn Du etwas dranbleibst, lernst Du, wie Du es vermeiden kannst, die Datei so oft zu lesen (Deine Version liest die Datei einmal ein um die Fehlercodes zu lernen und dann jeweils nochmal pro Fehlercode, das ist ziemlich ineffizient). Hier mal kürzer (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 #!/usr/local/bin/perl -w use strict; use warnings; my $dumpfile = "Proba.txt"; # write the name of the input file my $resdir = "errors"; # directory where will be saved the files # with the different error records my %error; #------------------------------------------------------------------------------# if (! -d $resdir) { mkdir($resdir) or die("Could not create result directory $resdir\n"); } open (my $in, '<', $dumpfile) or die "Fehler beim Öffnen von $dumpfile: $!\n"; while (my $line = <$in>) { if ( $line =~ m|(\[\d+\])| ) { push @{$error{$1}}, $line; # Trefferzeile sofort im %error-Hash ablegen } } close $in; print "Error_Type\tCount\n"; for my $key (sort keys %error) { print "$key\t" . scalar @{$error{$key}} . "\n"; # Anzahl open(my $out, '>', "$resdir/${dumpfile}_$key.txt") or die $!; print $out join('', @{$error{$key}}); close $out; } Editiert von FIFO: typo Last edited: 2011-07-02 00:41:27 +0200 (CEST) Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
|