xmlstarlet sel выводит новую строку между значениями

У меня есть следующий XML

<process id="test">

</process>
<process id="test2">

</process>

Я получаю правильные значения из атрибутов, но я хочу, чтобы они были разделены новой строкой для дальнейшей обработки.

При использовании команды

xmlstarlet sel -t -v "count(process/@id" "example.xml)"

Я вижу, что они разделены, потому что они возвращают 2

Команда, используемая для получения атрибутов, следующая:

xmlstarlet sel -t -v "process/@id" "example.xml"

Вопрос:

Можно ли вернуть выходные данные с новой строкой для каждого атрибута? Если нет, можно ли это сделать с помощью xmlint?


person Dany    schedule 14.06.2013    source источник


Ответы (1)


Я смотрел на это в течение 2 дней, и я нашел следующую страницу:

http://www.geekfarm.org/wu/muse/XmlStarlet.html

Это многое для меня прояснило

Я использовал следующую команду для достижения разрывов строк

xmlstarlet sel -t -m "process" -n -v "@id" "example.xml"
person Dany    schedule 14.06.2013
comment
Чтобы получить новые строки с флагом -n, требуется опция -m. т.е. когда вы используете sel -t -c "expression" -n some.xml, вместо этого используйте sel -t -m "expression" -c "." -n some.xml. - person phobic; 14.10.2015