VIM gezielt Zeilen löschen

  • Mit vi geht das sicher auch, ich würd da aber (e)grep verwenden:

    Code
    grep -v "was_ich_nicht_haben_will" alte_textdatei > neue_textdatei


    bzw.

    Code
    egrep -v "was_ich_nicht_haben_will" alte_textdatei > neue_textdatei


    wenn du für "was_ich_nicht_haben_will" einen regulären Ausdruck verwenden willst.

  • Muss es mit Vim sein? Hab da leider nicht geschafft herauszufinden, wie man das Komplement eines regulären Ausdrucks matcht, aber wenns nur darum geht, Zeilen, in denen eine Ziffernfolge nicht vorkommt zu entfernen geht das watschneinfach:

    Ein kurzes Perl-Programm, das Tie::File verwendet, bietet sich dafür auch an, wenn man Perl mag :)

    Der folgende Vim-Befehl matcht die Ziffernfolge 123 und löscht alle Zeilen, in denen 123 vorkommt, aber das ist eben genau das Gegenteil von dem was du brauchst. Schätze aber, dass man diesen Befehl nur irgendwie erweitern muss, um aufs richtige Ergebnis zu kommen.

    Code
    :g/^.*123.*$/ d


    g für global, innerhalb von // steht der Ausdruck und d ist der Delete-/Cut-Befehl.

    Restrain the specimen!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!