Use o comando find para fazer isso,
find /xxx -name '*.jsp' -exec perl -pi.13.04.2016 -w -e "s/\b1800 102 6022\b/1860 266 2666/g;" {} \;
Desejo substituir todas as ocorrências de 1800 102 6022
por 1860 266 2666
em todos os arquivos. Eu tenho arquivos diferentes em diretórios diferentes que podem conter 1800 102 6022
.
Estou usando:
perl -pi.13.04.2016 -w -e "s/\b1800 102 6022\b/1860 266 2666/g;" /*.jsp
que funciona para uma única pasta. Eu quero executar isso no diretório pai e aplicá-lo a todos os arquivos.
Use o comando find para fazer isso,
find /xxx -name '*.jsp' -exec perl -pi.13.04.2016 -w -e "s/\b1800 102 6022\b/1860 266 2666/g;" {} \;
Existem várias maneiras de fazer isso:
Use find
:
find . -type f -name "*.jsp" \
-exec perl -pi.13.04.2016 -w -e "s/\b1800 102 6022\b/1860 266 2666/g;" {} \;
Se você estiver usando bash
, use extglob
:
shopt -s globstar
perl -pi.13.04.2016 -w -e "s/\b1800 102 6022\b/1860 266 2666/g;" **/*jsp
Faça tudo em Perl, iterando os arquivos no diretório, mas isso não vale o esforço aqui.
Tags text-processing perl