Tengo que reemplazar (con algún carácter en mi archivo, y no puedo hacerlo. \(se usa para agrupar en sed y cuando lo usé \\(con sed, lo trató como \(personaje, no solo como (. Parece un caso complicado para mí.
Si quieres usarlo -rpuedes ponerlo (adentro [], ej.
sed -re 's/[(]/X/g'
Como comenta Lekensteyn, el uso trpodría ser más apropiado, ya que simplemente está reemplazando y no necesita todo el poder de las expresiones regulares.
Utilicé esto para reemplazar la "división" obsoleta de php con la función "explosión", asegurándome de que "división" esté precedida por un espacio y seguido de un "(".grep -lRZ " split(" . | xargs -0 sed -i -e 's/ split(/ explode(/g'
tr
(anslate):echo 'Hello (world)' | tr '()' '[]'
; SalidasHello [world]
.Respuestas:
Si usa sed sin
-r
(expresiones regulares extendidas) funcionará como se usa en\(\)
lugar de()
para la agrupación:Por ejemplo
Si quieres usarlo
-r
puedes ponerlo(
adentro[]
, ej.Como comenta Lekensteyn, el uso
tr
podría ser más apropiado, ya que simplemente está reemplazando y no necesita todo el poder de las expresiones regulares.fuente
grep -lRZ " split(" . | xargs -0 sed -i -e 's/ split(/ explode(/g'