Eu tenho o seguinte comando grep canalizado para sed para encontrar um atributo de nome de elemento e armazenar o resultado sed em uma variável de nome.
name=$(grep -E "<element.*name=.*/>" "$F" | sed -e "s/.*<element.*name=\(.*\)\/>.*?/\1/")
Dados de amostra -
<element name="Barium"/>
Saída desejada -
Barium
Saída real -
<element name="Barium"/>
Estou um pouco confuso sobre como obter o comando sed para me livrar do excesso.
(Eu sei que o xmllint tornaria isso fácil, mas não posso usá-lo para isso)
Responder1
Você não precisa do sed para isso:
grep -Po '(?<=<element name=")[^"]+' <file>
Ou
grep -Po '<element name="\K[^"]+' <file>