Cómo buscar y reemplazar usando grep

Resuelto billtian asked hace 11 años • 0 respuestas

Necesito buscar recursivamente una cadena especificada dentro de todos los archivos y subdirectorios dentro de un directorio y reemplazar esta cadena con otra cadena.

Sé que el comando para encontrarlo podría verse así:

grep 'string_to_find' -r ./*

Pero, ¿cómo puedo reemplazar cada instancia de string_to_findcon otra cadena?

billtian avatar Mar 14 '13 13:03 billtian
Aceptado

Otra opción es usar buscar y luego pasarlo por sed.

find /path/to/files -type f -exec sed -i 's/oldstring/new string/g' {} \;
rezizter avatar Mar 14 '2013 06:03 rezizter

Recibí la respuesta.

grep -rl matchstring somedir/ | xargs sed -i 's/string1/string2/g'
billtian avatar Mar 14 '2013 06:03 billtian