Ich habe diese Befehlszeile, um die Zeichenfolge zu suchen und zu entfernen: text_to_remove(SOME_VALUE)
.
find . -type f -name "*php" -exec sed -i 's/text_to_remove(SOME_VALUE)//' {} \+
Es funktioniert einwandfrei, aber das Problem besteht darin, dass „SOME_VALUE“ ein beliebiger Text sein kann. Gibt es eine Möglichkeit, diese Zeile zu ändern, um jeden beliebigen Wert in „SOME_VALUE“ abzufangen?
Antwort1
Vorausgesetzt, dass SOME_VALUE
nie eine schließende Klammer enthält, können Sie verwenden
find . -type f -name "*php" -exec sed -i 's/text_to_remove([^)]*)//' {} \+
( [^)]*
bedeutet jedes Zeichen, das nicht ist )
, 0 oder mehr Mal.)