Встроенная команда оболочки для извлечения значения узла из XML

Я пытаюсь извлечь значение узла из pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <parent>
        <groupId>org.me.labs</groupId>
        <artifactId>my-random-project</artifactId>
        <version>1.5.0</version>
    </parent>
    ...
</project>

Мне нужно извлечь artifactId и версию из XML с помощью команды оболочки. У меня есть следующие требования / наблюдения:

Сценарий оболочки будет выполнен в файле сборки сборки, который мы используем на работе, поэтому чем меньше скрипт, тем лучше.Так как он будет использоваться на нескольких системах (обычно RHEL5), я ищу что-то, что может работать изначально на изображениях по умолчанию.Такие теги могут встречаться в другом месте в поме, поэтому я не могу просто awk для этих тегов.

Я пробовал следующее:

xpath работает на моем Mac, но не доступен по умолчанию на машинах RHEL. Аналогично дляxmllint --xpath, который, я думаю, доступен только в более поздних версияхxmllintчто я не имею и не могу обеспечить.xmllint --pattern казалось многообещающим, но я не могу получить выход изxmllint --pattern '//project/parent/version' pom.xml (печатает весь XML) илиxmllint --stream --pattern '//project/parent/version' pom.xml (нет выхода).

Я понимаю, что это общий вопрос здесь, на SO, но вышеизложенное объясняет, почему я не могу использовать эти ответы. TIA за вашу помощь.

Ответы на вопрос(6)

Ваш ответ на вопрос