Ich arbeite mit einem Text, der voller Dinge zwischen Klammern [] ist, die ich nicht möchte. Da ich die Klammern selbst löschen kann, brauche ich dafür keinen Einzeiler, aber ich brauche einen Einzeiler, der alles dazwischen entfernt.
Was ist mit Klammern () anstelle von Klammern?
Akzeptierte Antwort:
Ersetzen Sie [some text]
durch die leere Zeichenfolge. Angenommen, Sie möchten keine verschachtelten Klammern parsen, der some text
darf keine Klammern enthalten.
sed -e 's/[[^][]*]//g'
Beachten Sie, dass im Klammerausdruck [^][]
etwas anderes als [
zu finden oder ]
, der ]
muss zuerst kommen. Normalerweise ein ]
würde den Zeichensatz beenden, aber wenn es das erste Zeichen im Satz ist (hier nach dem ^
Ergänzungszeichen), das ]
steht für sich.
Wenn Sie verschachtelte Klammern analysieren möchten oder der Text in Klammern mehrere Zeilen umfassen kann, ist sed nicht das richtige Werkzeug.