Me gustaría iterar sobre muchos archivos xml para corregir entradas de configuración obsoletas obteniendo todas las coincidencias y luego reemplazando en un segundo paso cada entrada por cadenas actualizadas (scripts multilínea en este caso). Sé cómo consultar/seleccionar e imprimir valores de elementos usando XPath con, xmlstarlet
por ejemplo
xmlstarlet sel -t -v '//hudson.tasks.Shell/command' $xml
o cómo enumerar todos los XPath usando
xmlstarlet el -a $xml
¿Hay alguna manera de generar una lista de válidos?XPaths¿Expresiones para cada coincidencia para usar esta cadena XPath más adelante para actualizar el valor en el segundo paso? p.ej
maven2-moduleset/postbuilders/hudson.tasks.Shell[1]/command
maven2-moduleset/postbuilders/hudson.tasks.Shell[2]/command
La única solución que encontré por ahora fue contar las rutas de el
salida y luego recorrerlas por índice (usando bash).