Tengo un archivo .xml y estoy tratando de hacer una "instalación grupal" en una máquina RHEL6, ya que hay varios cientos de bibliotecas en ese archivo .xml ... (cerca de 16 000 líneas).
Por lo tanto, estoy tratando de extraer los nombres de grupo contenidos en el archivo .xml que tiene esta estructura:
<b>
<group>
<id> group name </id>
<packages>
...
</packages>
<id> group name 2 </id>
<packages>
...
</packages>
<id> etc... </id>
</group>
</b>
Básicamente, esto es lo que he intentado:
sed -n '/<id>/,/<\/id>/p' test1.txt > test2.txt
Copié el archivo .xml a test1.txt. Estoy tratando de extraer los nombres de grupo de test1.txt a un segundo archivo llamado test2.txt. Sin embargo, con la línea anterior, está extrayendo todo, desde la PRIMERA <id>
etiqueta hasta la última </id>
etiqueta en mi archivo. ¿Cómo puedo cambiar mi código para extraerlo varias veces?
Mi segunda pregunta sería: ¿el complemento -downloadonly funciona tan bien con grupos para yum?
Respuestas:
Parece que lo que necesitas es más algo en la línea de
(suponiendo, como en su muestra, que
<id>
y</id>
están en la misma línea y que solo hay uno<id>...</id>
por línea).O use una herramienta compatible con XML:
fuente
Por favor intente con
fuente
Esto funcionará con cualquier etiqueta, por supuesto también con
<a href="...">...</a>
anclajes. No se utilizan GNUisms: el soporte básico de expresiones regularessed
será suficiente.Sin embargo : tenga en cuenta que las etiquetas de apertura y cierre deben estar en la misma línea, de lo contrario, la declaración tendría que reescribirse nuevamente.
fuente
Esto es XML, debe usar un analizador XML. Aquí hay una solución usando XMLStarlet :
La expresión XPath
//group/id
seleccionará cualquierid
nodo debajo de ungroup
nodo. Los-t -v
medios "usan la siguiente plantilla para extraer valores". Al-nl
final se asegurará de que la salida finalice con una nueva línea.El ejemplo anterior usa un archivo XML que es idéntico al suyo, pero con cualquier línea que contenga
...
eliminada.fuente
Leí esta publicación buscando resolver el problema de extraer Reqd. Paquetes del DVD RHEL 7.3
repos.xml
, que creo que es exactamente lo que el autor anterior estaba tratando de hacer. Así que espero que este script pueda ayudar a alguien más ... Lo he usado muchas veces ahora.Así que necesitaba instalar el grupo "GNOME DESKTOP" en mi servidor RHEL7 "Minimal Install" que no tenía X / GUI configurado.
Hmmmmm ... no hay una lista de grupos en el DVD para yum (sí, probé todos los arreglos habituales de "google" y nunca funcionó), así que recurrí a la lista de fuente dura de xml.
Asumiendo que has corrido
createrepo /your/local_rpms/dir
.fuente