Conjunto de comandos de shell nativo para extraer el valor de nodo de XML

Estoy intentando extraer el valor de un nodo de un 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>

Necesito extraer el artifactId y la versión del XML usando un comando de shell. Tengo los siguientes requisitos / observaciones:

El script de shell se realizará dentro de un archivo de ensamblaje de compilación que usamos en el trabajo, por lo que cuanto más pequeño sea el script, mejor.Dado que se usará en varios sistemas (generalmente RHEL5), estoy buscando algo que pueda ejecutarse de forma nativa en imágenes predeterminadas.Etiquetas como pueden aparecer en otras partes del pom, por lo que no puedo simplemente aceptar esas etiquetas.

He probado lo siguiente:

xpath funciona en mi Mac, pero no está disponible de forma predeterminada en las máquinas RHEL. Del mismo modo paraxmllint --xpath, que supongo que solo está disponible en versiones posteriores dexmllint, que no tengo y no puedo hacer cumplir.xmllint --pattern parecía prometedor, pero parece que no puedo obtener una salida dexmllint --pattern '//project/parent/version' pom.xml (imprime todo el XML) oxmllint --stream --pattern '//project/parent/version' pom.xml (ninguna salida).

Me doy cuenta de que esta es una pregunta común aquí en SO, pero los puntos anteriores son por qué no puedo usar esas respuestas. TIA por tu ayuda.

Respuestas a la pregunta(6)

Su respuesta a la pregunta