Я хотел бы перебрать множество xml-файлов, чтобы исправить устаревшие записи конфигурации, получив все совпадения и заменив затем на втором этапе каждую запись обновленными строками (многострочными скриптами в данном случае). Я знаю, как запрашивать/выбирать и печатать значения элементов с помощью XPath, xmlstarlet
например,
xmlstarlet sel -t -v '//hudson.tasks.Shell/command' $xml
или как составить список всех XPath-ов с помощью
xmlstarlet el -a $xml
Есть ли способ вывести список допустимыхXPath-ывыражения для каждого совпадения, чтобы использовать эту строку XPath позже для обновления значения на втором шаге? например
maven2-moduleset/postbuilders/hudson.tasks.Shell[1]/command
maven2-moduleset/postbuilders/hudson.tasks.Shell[2]/command
Единственное решение, которое я нашел на данный момент, — это подсчитать пути из el
вывода, а затем выполнить цикл по ним по индексу (используя bash).