linux-l: Perlscript
Ralf Bärwaldt
Ralf.Baerwaldt at partner.bmw.de
Mi Mär 21 13:01:45 CET 2001
> Hat jemand eine Idee, wodurch das fehlen zustande kommt ?????
>
Hallo Manuel,
ich bin mir nicht sicher, ob ich dein Programm richtig
verstanden habe. Aber ich habe mal eine Aenderung
versucht (siehe unten).
Mit freundlichen Gruessen
Ralf Baerwaldt
#!/usr/bin/perl
#
# Dieses Script fuegt an aufeinanderfolgenden Seiten das "f" bzw. das
"ff" an.
#
# DATE CREATED : 11.04.00
# DATE LAST UPDATE : 11.04.00
while (my $zeile = <>) {
my @a;
# Das Script setzt voraus, dass alle Seitenzahlen hinter einem
# "<rf" stehen und mit "©<" enden.
@a = split /<rf/, $zeile;
my $zeilen_anfang = $a[0] . '<rf';
@a = split /©</, $a[1];
my $seiten_zahlen = $a[0];
@a = split /©</, $zeile;
my $zeilen_ende = '©<' . $a[1];
if ($seiten_zahlen =~ /(.*?)([0-9].*[0-9])/ ) {
print $zeilen_anfang;
@seiten = split /, /, $seiten_zahlen;
$letzte_seite = $seiten[0];
$string = $letzte_seite;
for ($i = 1; $i <= $#seiten; ++$i) {
$seite = $seiten[$i];
if ($seite == $letzte_seite + 1) {
$string .= "f";
$string =~ s/ff+/ff/;
} else {
print "$string, ";
$string = $seite;
}
$letzte_seite = $seite;
}
print "$string$zeilen_ende";
}
else {
print "$zeile";
}
}
Mehr Informationen über die Mailingliste linux-l