Como posso fazer uma busca recursiva e substituir a shell de comando?

0

Usando um shell como o bash ou o zshell, como posso fazer um 'localizar e substituir' recursivo? Em outras palavras, eu quero substituir cada ocorrência de '/ path / to / folder' por '/ other / dir' em todos os arquivos neste diretório e seus subdiretórios.

Esta é essencialmente a mesma pergunta que o original deste nome, mas o que preciso saber é o que acontece se o texto que você deseja substituir tiver barras como os exemplos acima? Posso apenas colar meu código no ponto de localização / substituição nos argumentos? Ou eu tenho que fazer outra coisa ???

Tudo isso será feito em ssh para o servidor Ubuntu.

Obrigado!

    
por Elliot Labs 26.06.2014 / 04:41

1 resposta

1

Use find e sed :

find . exec sed -i .bak 's,/path/to/folder,/other/dir,g' \;
  • Você também pode usar awk ou perl em vez de sed - escolha o que quiser.
  • Você pode passar opções para find para limitar o arquivo em que você opera & c
por 26.06.2014 / 06:11