Boris Hoeller: Bestimmte Zeile(n) aus Textdatei entfernen (oder loeschen)

Beitrag lesen

[ .... ]

gehen wir mal davon aus, ich haette eine Textdatei mit folgendem Inhalt:

Hallo, mein Name ist
Chris Weber, ich bin
neunzehn und wohne
in Berlin.

[ ... ]

eine bestimmte Zeile auszudrucken, wie kann ich aber eine oder mehrere bestimmte Zeilen entfernen, bzw. loeschen ?

Hi Chris,

wie immer: Viele Wege führen nach Rom ....

Hier wohl einer:

--snip --

#!/usr/bin/perl

$a = "Inputfile.txt";
$b = "Outputfile.txt";

open(IN,$a) die "file $a laesst sich nicht oeffnen wegen $!";
open(OUT,">$b") die "file $b laesst sich nicht anlegen: $!";
while (<IN>) {
  
  $zeile = $_;
  if ($zeile  =~ "wohne") {$zeile="\n";} # Bsp.
  print OUT $zeile;
        
               }

close (IN);
close(OUT);

-- snap ---

Nicht getestet, müßte es aber bringen.

Nach öffnen und anlegen der beteilligten Dateien:
Aus dem Inputfile wird Zeile für Zeile eingelesen.
Jede Zeile, die jeweils  in die Variable $zeile
eingebracht wird, soll mit if an einer Bedingung getestet werden. Passt die Bedingung wird aus der Zeile mit Zeichen einfach eine mit einem Zeilenumbruch, wenn nicht, wird die Zeile so, wie sie eingelesen wurde auch wieder 'ausgedruckt'.
Schließlich werden die files der guten Ordnung halber wieder geschlossen.

Hoffentlich klappt es ;)

CU
Boris

Danke fuer Eure Hilfe,

Chris