Ubuntu busca y reemplaza archivos del directorio actual de forma recursiva

Ubuntu busca y reemplaza archivos del directorio actual de forma recursiva

Estoy ejecutando Ubuntu 14.04 y el sitio web Magento en mi sistema local.

Ahora tengo un directorio de módulo en el que quiero reemplazar cada aparición de "Magento\Module" con "MyCompany\Module" en todos los archivos dentro de esta carpeta actual y sus subdirectorios de forma recursiva, por supuesto, pero supongo que no funciona debido a " \" están ahí en mi cadena de búsqueda y reemplazo.

Ya lo he probado:

find ./ -type f -readable -writable -exec sed -i "s/Magento\\Module/MyCompany\\Module/g" {} \;

Pero no funciona en absoluto.

Por favor ayuda a cualquiera, es urgente.

Respuesta1

Es probable que el caparazón esté consumiendo uno de los escapes:

$ echo sed "s/Magento\\Module/MyCompany\\Module/g"
sed s/Magento\Module/MyCompany\Module/g

Entonces, agregue un escape adicional o coloque comillas simples en toda la expresión:

$ echo sed "s/Magento\\\Module/MyCompany\\\Module/g"
sed s/Magento\\Module/MyCompany\\Module/g

$ echo sed 's/Magento\\Module/MyCompany\\Module/g'
sed s/Magento\\Module/MyCompany\\Module/g

Probándolo:

$ echo 'every occurrence of "Magento\Module"' | sed 's/Magento\\Module/MyCompany\\Module/g'
every occurrence of "MyCompany\Module"

información relacionada