localizar e substituir uma string em um conjunto de arquivos XML usando comandos shell

StackOverflow https://stackoverflow.com/questions/1605610

  •  05-07-2019
  •  | 
  •  

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

Foi útil?

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
scroll top