Thread Regulärer Ausdruck (11 answers)
Opened by Kruemel at 2011-08-31 09:55

payx
 2011-08-31 11:02
#151972 #151972
User since
2006-05-04
564 Artikel
BenutzerIn

user image
Hallo Kruemel,

das löst man am elegantesten mit dem Flip-Flop-Operator, vgl.

http://reneeb-perlblog.blogspot.com/2010/01/der-fl...

Das dortige Beispielscript an Deinen Fall angepasst:

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
#!/usr/bin/perl

use strict;
use warnings;

my $bool = 0;

while( my $line = <DATA> ){
  if( $line =~ /^\/begin blubber/ ){
     $bool = 1;
  }

  print $line unless $bool;

  if( $line =~ /^\/end blubber/ ){
     $bool = 0;
  }
}

__DATA__
Text
am
Anfang
/begin blubber skdjflkdsjf
sdlkfjdsk
lksjflksdj
aajjllja
/end blubber
Text
am
Ende


Du schreibst, dass die Einträge gelöscht werden sollen. Vermutlich wirst Du so vorgehen, dass Du mit zwei Filehandles arbeitest: Das eine liest die Quelldatei ein, das andere schreibt alles, was nicht gelöscht werden soll, in eine Zieldatei. Wenn Du eine vorhandene Datei editieren willst, brauchst Du so etwas wie CPAN:File::Tasks::Edit (habe ich noch nicht ausprobiert).

HTH
Grüße
payx

View full thread Regulärer Ausdruck