Christian Kruse: Filehandling

Beitrag lesen

Tag,

Kann ich aus einem Textfile bestimmte Zeile löschen?

Ja, sicher :-)

Oder muss ich zuerst das ganze Textfile in einen Array lesen und
dann alles zurückschreiben ausser diese bestimmte Zeile?

Nun, in einen Array wuerde ich das nicht lesen. Aber das Prinzip
stimmt, ja.

Beispiel:

File.txt

  1. Zeile: Hund
  2. Zeile: Hase
  3. Zeile: Pferd

Nun möchte ich die Zeile mit dem "Hase" löschen, damit das File
nochher so aussieht:

  1. Zeile: Hund
  2. Zeile: Pferd

Geht das?

Klar:

open DAT,'<datei1' or die $!;
open NEW,'>datei2' or die $!;

while(<DAT>) {
  if($_ ne 'Hase') {
    print NEW $_;
  }
}

close DAT;
close NEW;

rename 'datei2' => 'datei1';

Das kann man noch geringfuegig optimieren, aber ich glaube nicht,
dass sich das lohnt.

Gruesse,
 CK