Globales suchen ersetzen vi editor

Habe eine Datei mit mehreren Strings die folgendermaßen aussehen:. Verschiedene Wörter in Klammern eben. Nun möchte ich alle Strings die in Klammern stehen inklusive Klammern löschen. Wie kann man das machen. Habe es mit Platzhaltern versucht , ging aber nicht wie ich wollte. Es soll ja das der gesamte String markiert und dann gelöscht werden.

4 Antworten zur Frage

Bewertung: 1 von 10 mit 1736 Stimmen

Videos zum Thema
YouTube Videos

Globales Suchen und Ersetzen im vi-Editor

Bin mir nicht ganz sicher ob das bei vi so funktioniert.
Du musst den String mit den Klammern als regulären Ausdruck schreiben.
Das sieht in etwa so aus:
bedeutet, dass ein Buchstaben A-Z oder eine Zahl zwischen den klammern stehen muss. Das * signalisiert, dass die Zeichenfolge 0 - unendlich mal wiederholt werden kann. Die Klammern stehen für die tatsächlichen Klammern. Stehen auch andere Zeichen zwischen den Klammern, musst du die auch aufnehmen. Sonderzeichen werden durch einen "\" markiert.
Der Befehl könnte also etwa so aussehen:
s///g
Hier findest du eine kurze erklärung der Ausdrücke in vi:
tubIT ist Nachfolgeeinrichtung der ZRZ
Deine Lösung würde allerdings Wörter, die Zahlen enthalten nicht löschen. Zum Beispiel "".
Das stimmt,hatte aber auch geschrieben, dass dieses nur Buchstaben löscht, und im Beispiel die Zahlen mit eingeschlossen und darauf hingewiesen, dass Sonderzeichen hinzugefügt werden müssten.
aber deine Lösung klingt da doch ein wenig einfacher.
Hui. noch jemand, der diesen wundervollen Editor verwendet.
Wenn Du im gesamten Text alle Worte in Klammern inklusive Klammern löschen willst geht es mit:
:%s/(//g
Das heißt: Ersetze alle Zeichnketten "KlammerAuf, Null-oder-mehr-Zeichen-NichtKlammerZu gefolgt von KlammerZu" durch nichts. Das "g" am Ende steht für global, also mehrmals in einer Zeile. Das "%" am Anfang ist der Ersetzungbereich, also das gesamte Dokument.
Das siehe legux Antwort). Das "^" am Anfang der eckigen Klammern ist eine Negation der Menge im Sinne von "alle Zeichen, die nicht. sind".
Der "*" steht für Null oder mehr Vorkommen des vorherigen Zeichens oder der Zeichenmenge.