Je dois remplacer (
par un caractère dans mon fichier et je ne peux pas le faire. \(
est utilisé pour le regroupement dans sed et quand je l'ai utilisé \\(
avec sed, il l'a traité comme un \(
caractère, pas comme un juste (
. Cela me semble un cas délicat.
27
tr
(anslate):echo 'Hello (world)' | tr '()' '[]'
; il sortHello [world]
.Réponses:
Si vous utilisez sed sans
-r
(expressions régulières étendues), cela fonctionnera comme il utilise\(\)
plutôt que()
pour le regroupement:Par exemple
Si vous souhaitez utiliser,
-r
vous pouvez mettre à l'(
intérieur[]
, par exempleComme le fait remarquer Lekensteyn, l' utilisation
tr
pourrait être plus appropriée car vous remplacez simplement et vous n'avez pas besoin de la pleine puissance des expressions régulières.la source
grep -lRZ " split(" . | xargs -0 sed -i -e 's/ split(/ explode(/g'