Thread pattern matching: Loeschen eines  Textblocks aus einer Dat (14 answers)
Opened by mkuehnl at 2004-08-17 11:55

Crian
 2004-08-17 15:59
#49333 #49333
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Ich würds noch einfacher machen: Die Datei einfach in einer while (<>) {...} Schleife durchdaddeln, dabei die letzten drei Zeilen merken und immer um vier Zeilen versetzt ausgeben (Du hast also immer vier Zeilen im Memory (modulo interner Blockverarbeitung).

Wenn Du auf Deine Zeile stößt, gibst Du die Zeilen im Speicher nicht aus, leerst die Variablen für die Zeilen und überliest auch noch die nächsten fünf, danach machst Du weiter wie gehabt. Dabei aufpassen, dass Du dann nicht aus Versehen leere Zeilen ausgibst.

Dürfte aber noch einfacher sein.

Also so (ungetestet, soll Skizze sein):

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

my @merk;

while (<>) {
    if (/^t+$/) {
        <>;
        <>;
        <>;
        <>;
        <>;
        @merk = ();
    }
    else {
         push @merk, $_;
    }
    if ($#merk >=3) {
        print shift @merk;
    }
}
print for @merk;
\n\n

<!--EDIT|Crian|1092744479-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite

View full thread pattern matching: Loeschen eines  Textblocks aus einer Dat