Как напечатать имена тегов XML вместе с их значениями в сценарии оболочки - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть образец pom.xml.Мне нужно напечатать определенные теги XML с их значениями в другой XML.Я могу извлечь значения тегов, но не могу печатать вдоль имен тегов.

XML-код:

<dependency>
<job>xmlparsing</job>
<version>1.0</version>
</dependency>

Используемая команда:

sed -ne '/<\/job>/ { s/<[^>]*>\(.*\)<\/job>/\1/; p }

Фактический вывод:

xmlparsing

Ожидаемый вывод:

<job>xmlparsing</job>

Как изменитьКоманда sed для печати тегов XML с их значениями?

1 Ответ

0 голосов
/ 11 сентября 2018

Если вы можете установить и использовать xmlstarlet, это будет предпочтительным способом:

 xmlstarlet sel -t -c '//dependency/job' pom.xml

обратите внимание на использование -c вместо -v


, если вынужно использовать sed, заменив \1 (содержимое того, что было найдено в первой паре \( \)) на \0 (содержимое, которое было сопоставлено всем регулярным выражением), должно сработать, но этоплохо разбирать xml с помощью регулярных выражений:

sed -ne '/<\/job>/ { s/<[^>]*>\(.*\)<\/job>/\0/; p }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...