
Estou executando o site Ubuntu 14.04 e Magento em meu sistema local.
Agora eu tenho um diretório de módulo no qual desejo substituir todas as ocorrências de "Magento\Module" por "MyCompany\Module" em todos os arquivos dentro desta pasta atual e seus subdiretórios recursivamente, é claro, mas acho que não está funcionando devido a " \" estão lá na minha busca e substituem a string.
Eu já tentei:
find ./ -type f -readable -writable -exec sed -i "s/Magento\\Module/MyCompany\\Module/g" {} \;
Mas não funciona de jeito nenhum.
Por favor ajude alguém, é urgente.
Responder1
O shell provavelmente está consumindo um dos escapes:
$ echo sed "s/Magento\\Module/MyCompany\\Module/g"
sed s/Magento\Module/MyCompany\Module/g
Portanto, adicione um escape adicional ou coloque aspas em toda a expressão:
$ 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
Testando:
$ echo 'every occurrence of "Magento\Module"' | sed 's/Magento\\Module/MyCompany\\Module/g'
every occurrence of "MyCompany\Module"