Thread best.Zeile + darauffolgende Zeilen löschen (17 answers)
Opened by Gast at 2005-05-03 11:38

Strat
 2005-05-03 18:46
#54496 #54496
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn dich sowas mehr interessiert: auf meiner HP steht auch unter Vortraege was zu "Perl in der Kommandozeile" (als Powerpoint)

Eine weitere vermutlich funktionierende Loesung waere die folgende:
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
24
25
26
27
28
29
30
31
32
33
34
#! /usr/bin/perl
use warnings;
use strict;

my $infile = "irgendwas.txt";
my $outfile = "out.txt";

# dateien oeffnen
unless (open (IN, "<", $infile)) {
 die "Error in opening '$infile': $!\n";
} # unless
unless (open (OUT, ">", $outfile)) {
 die "Error in opening '$outfile': $!\n";
} # unless

# in schleife Daten einlesen; $_ enthaelt jeweils eine Zeile
while (<IN>) {

 # wenn in der Zeile das Wort NOID vorkommt:
 if ($_ =~ /\bNOID\b/) { # oder kuerzer: if (/\bNOID\b/) {
   for my $i (1..4) { # werfe die folgenden vier zeilen weg
     my $dummy = <IN>;
   } # for
 } # if

 # sonst schreibe sie nach OUT
 else {
   print OUT $_;
 } # else

} # while

# dateien wieder schliessen
close(IN); close(OUT);


mich laesst aber vermuten, dass in der Datei eine datenstruktur vorkommt, die auf bloecken beruht und nicht auf zeilen. wenn du dieses format naeher beschreibst, finden wir vielleicht eine kuerzere loesung.

Nebenbei: auf meiner HP steht unter Vortraege meine "Einfuehrung in Perl", die dir vielleicht den einstieg ein klein wenig erleichtern kann\n\n

<!--EDIT|Strat|1115131736-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread best.Zeile + darauffolgende Zeilen löschen