Tengo el siguiente comando grep canalizado a sed para encontrar un atributo de nombre de elemento y almacenar el resultado de sed en una variable de nombre.
name=$(grep -E "<element.*name=.*/>" "$F" | sed -e "s/.*<element.*name=\(.*\)\/>.*?/\1/")
Data de muestra -
<element name="Barium"/>
Salida deseada -
Barium
Salida real -
<element name="Barium"/>
Estoy un poco confundido sobre cómo hacer que el comando sed elimine el exceso.
(Sé que xmllint haría esto fácil, pero no puedo usarlo para esto)
Respuesta1
No necesitas sed para esto:
grep -Po '(?<=<element name=")[^"]+' <file>
O
grep -Po '<element name="\K[^"]+' <file>