Natywne polecenie powłoki ustawione na wyodrębnianie wartości węzła z XML

Próbuję wyodrębnić wartość węzła z pliku 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>

Muszę wyodrębnić artifactId i wersję z XML za pomocą polecenia powłoki. Mam następujące wymagania / obserwacje:

Skrypt powłoki zostanie wykonany w pliku kompilacji, którego używamy w pracy, więc im mniejszy skrypt, tym lepiej.Ponieważ będzie używany w wielu systemach (zwykle RHEL5), szukam czegoś, co może działać natywnie na domyślnych obrazach.Znaczniki takie mogą występować w innym miejscu pom, więc nie mogę po prostu obudzić tych tagów.

Próbowałem:

xpath działa na moim Macu, ale domyślnie nie jest dostępny na maszynach RHEL. Podobnie dlaxmllint --xpath, które, jak sądzę, jest dostępne tylko w późniejszych wersjachxmllint, których nie mam i nie mogę egzekwować.xmllint --pattern wydawało się obiecujące, ale wydaje mi się, że nie mam wyjściaxmllint --pattern '//project/parent/version' pom.xml (drukuje cały XML) lubxmllint --stream --pattern '//project/parent/version' pom.xml (brak wyjścia).

Zdaję sobie sprawę, że jest to powszechne pytanie tutaj, ale powyższe punkty są powodem, dla którego nie mogę użyć tych odpowiedzi. TIA dla twojej pomocy.

questionAnswers(6)

yourAnswerToTheQuestion