Thread txt-datei filtern
(17 answers)
Opened by Xylol at 2009-12-03 10:59
Als vollständiges Programm:
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 #!/usr/bin/env perl # Core Modules use strict; use warnings; use utf8; use open ':encoding(UTF-8)'; use open ':std'; use Getopt::Long; my $input; my $output = \*STDOUT; # Accepts -i and -o GetOptions( 'input=s' => \$input, 'output=s' => \$output, ) or die "Argument Parsing Error\n"; # Open input file open my $fh_in, '<', $input or die "Cannot open input file: $!\n"; # $fh is file or STDOUT my $fh_out; if ( ref($output) eq 'GLOB' ) { $fh_out = $output; } else { open $fh_out, '>', $output or die "Cannot open output file: $!\n"; } # read file while ( my $line = <$fh_in> ) { chomp($line); if ( length($line) > 10 && length($line) < 15 ) { print {$fh_out} $line, "\n" or die "Cannot write to output: $!\n"; } } close $fh_in or die "Cannot close input file: $!\n"; close $fh_out or die "Cannot close output file: $!\n"; Programm akzeptiert "-i" und "-o" als Kommandoswitch. Mit "-i" gibst du den Dateinamen an. Mit "-o" die Ausgabedatei. Lässt du "-o" weg landet die ausgabe standardmäßig auf STDOUT. Alle Dateien werden UTF-8 encodiert eingelesen. Und es wird geprüft ob es auch zwischen 10 oder 15 "Zeichen" sind, nicht Bytes. Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|