encuentre y reemplace una cadena en un conjunto de archivos xml usando comandos de shell
Pregunta
Tengo 1000 archivos en un directorio. Estoy en una máquina solaris
Quiero reemplazar la cadena " / example / test / temp quot quot; t0 " / testing / in / progress / en todos los archivos xml en mi directorio.
cualquier puntero será grande.
gracias,
principiante
Solución
¿Qué tal (todo en una línea):
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'
Otros consejos
Use sed (1).
En general, es más seguro usar un procesador xslt para masajear archivos XML, pero en este ejemplo en particular, las posibilidades de algunos " funky " La representación XML que causa problemas es bastante remota ...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow