localizar e substituir uma string em um conjunto de arquivos XML usando comandos shell
Pergunta
Eu tenho 1000 arquivos em um diretório. Eu estou em uma máquina Solaris
Eu quero substituir a cadeia "/ example / test / temp" T0 "/ testar / in / progresso / em todos os arquivos xml no meu diretório.
qualquer ponteiros vai ser ótimo.
graças,
novato
Solução
Como sobre (todos em uma linha):
find . \( -type d ! -name . -prune \) -o \( -type f -name "*.xml" -print \) |
xargs perl -i.old -p -e 's-/example/test/temp-/testing/in/progress/-g'
Outras dicas
Use sed (1).
Em geral, é mais seguro usar um processador XSLT para massagear arquivos XML, mas neste exemplo particular, as chances de alguns "badalado" representação XML causando problemas é bastante remoto ...
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow