Tom: Zeichenfolge aus File löschen?

Hi,

ich habe in einem Textfile mehrere Zeilen stehen, die in etwa so aussehen:

RudolfLobby
GerhardCafé
MichaelLobby
GeortLobby

usw

wenn ich jetzt z.B. nur den String "GerhardCafé" (mit dem Zeilenumbruch) rauslöschen will, wie mache ich das per Perl?

Danke im Voraus

Tom

  1. Naja, Du liest die Datei und schreibst sie wieder, wobei Du die betreffende Zeile weglaesst.
    z.B.
    while (<IN>) {
       print OUT $_ unless ($_ eq $zeile_die_nicht_soll);
    }

  2. Hi,

    wenn ich jetzt z.B. nur den String "GerhardCafé" (mit dem Zeilenumbruch) rauslöschen will, wie mache ich das per Perl?

    Datei komplett einlesen, Eintrag löschen, Datei komplett schreiben. Eine Methode, nur eine Zeile o.ä. zu entfernen, gibt es nicht.

    Wenn Du Sebastians Lösung nutzen möchtest, bedenke bitte, daß IN und OUT zwei verschiedene Dateien sein müssen, weil Du sonst genau die erste Zeile übernimmst und den Rest löschst :-)

    Cheatah

    1. Hi,

      wenn ich jetzt z.B. nur den String "GerhardCafé" (mit dem Zeilenumbruch) rauslöschen will, wie mache ich das per Perl?

      Datei komplett einlesen, Eintrag löschen, Datei komplett schreiben.

      hm... da ich mit Perl erst beginne, bin ich mir nicht ganz so sicher...

      ---
      open(LIST,"$root/names.txt");
      @namez = <LIST>;
      close(LIST);
      ---
      Das is mal einlesen, oder?
      Wenn das stimmt, is es schon mal ok...
      aber wie lösche ich den Eintrag jetzt raus?
      Das kann ich leider noch nicht.

      Danke
      Tom

      1. Wenn das stimmt, is es schon mal ok...
        aber wie lösche ich den Eintrag jetzt raus?
        Das kann ich leider noch nicht.

        Aber hier greift die Lösung von Sebastian: Alles ausgeben, das *nicht* Dein Kriterium für "Löschen" erfüllt.