Ich muss durch (
ein Zeichen in meiner Datei ersetzen , und ich kann es nicht tun. \(
wird für die Gruppierung in sed verwendet und wenn ich es \\(
mit sed verwendete, behandelte es es als \(
Charakter, nicht als gerecht (
. Es scheint mir ein kniffliger Fall zu sein.
27
tr
(anslate):echo 'Hello (world)' | tr '()' '[]'
; es gibt ausHello [world]
.Antworten:
Wenn Sie sed without
-r
(erweiterte reguläre Ausdrücke) verwenden, funktioniert es so, wie es verwendet,\(\)
anstatt es()
zu gruppieren:Beispielsweise
Wenn Sie verwenden möchten ,
-r
können Sie setzen(
innen[]
, zBWie Lekensteyn bemerkt, ist die Verwendung von
tr
möglicherweise sinnvoller, da Sie lediglich ersetzen und nicht die volle Kraft regulärer Ausdrücke benötigen.quelle
grep -lRZ " split(" . | xargs -0 sed -i -e 's/ split(/ explode(/g'