grep + sed para encontrar e substituir diversão!

2

Eu tenho uma cópia de desenvolvedor de um site criado com algumas referências codificadas para sua contraparte ao vivo.

Gostaria de substituir todas as ocorrências de "www". com "dev". em todos os arquivos.

Acho que posso usar uma combinação de grep + sed, mas não sei como.


fonte
3
Lol não é questão de programação. É uma habilidade básica do usuário avançado.
Maciek Sawicki
@Maciek: Eu posso comprar isso!
21420 Josh K

Respostas:

2

primeiro tente usar sed em um arquivo sed 's/foo/bar/g'para substituir foo por bar. Então, em vez de grep, sugiro encontrar. Use-o para encontrar todos os arquivos que precisam de alterações (* .php, * .html, etc ...). Em seguida, encontre a opção -exec.

Faça backup do seu projeto antes de começar.

Maciek Sawicki
fonte
2
Use sed 's/foo/bar/g'para uma substituição global.
Eleven81
Obrigado. Você está 100% certo. sem ele, substitua apenas a primeira instância de uma linha. Eu editei minha resposta.
Maciek Sawicki
Estou tentando algo assim sem sucesso até agora: encontre. -name '* .html' -exec sed 's / www / dev / g' {} \;
Para sua informação, acabei usando: find. -name "* .php" -print | xargs sed -i 's / www \ ./ dev \