Kürzlich habe ich auf einem meiner Server (für Wartungsarbeiten) viel Text bearbeitet – wo ich die Größe einer Datei optimieren muss, indem ich alle mit bestimmten Mustern entferne, manchmal alle Zeilen kommentierte Zeilen und manchmal alle Zeilen, die nicht enthalten ein bestimmtes Muster.
Zum Beispiel hatte einer meiner Server viele deaktivierte Benutzerkonten (kommentierte Zeilen in /etc/passwd-Datei) – wo ich alle diese deaktivierten Konten (kommentierte) mit vim entfernen muss. Folgendes habe ich getan:
Hinweis: Sie müssen dies im Befehlsmodus tun – ESC und :
Wenn Sie alle kommentierten Zeilen aus einer Datei entfernen möchten , dann müssen Sie die Zeilen entfernen, die mit „#“ beginnen.
:g/#/d
(oder)
:g/^\#/d
Angenommen, Sie möchten alle Zeilen entfernen, die mit einem bestimmten Muster übereinstimmen/enthalten – dann ist der Befehl ähnlich wie oben. Zum Beispiel:
:g/somepattern/d
Wenn Sie alle Zeilen entfernen möchten, die kein bestimmtes Muster enthalten , sagen wir, lassen Sie alle kommentierten Zeilen und löschen Sie den Rest. Achten Sie im folgenden Befehl auf das Symbol „!“
:g!/#/d
Der obige Befehl löscht alle Zeilen, die nicht mit „#“ beginnen. Alternativ können Sie den folgenden Befehl verwenden.
: v/#/d
Im obigen Befehl verwenden wir „v“ anstelle von „g“ und es ist kein „!“ erforderlich.