Думаю, это то, что вы ищете
cat sedtest | sed 's/.\+relvir$/1.2.3.4 relvir/'
Использование XMLStarlet для получения value
из prop
с помощью name
" one thing
":
$ xmlstarlet sel -t -v '//prop[name = "one thing"]/value' -nl file.xml
2
Это применяет запрос XPATH к XML, который выбирает узел value
(s )под узлом prop
(s ), который имеет узел name
со значением one thing
., а затем извлекает значение этих узлов.
Для краткости я использовал //prop
, чтобы найти prop
узлов в любом месте документа. Вы можете изменить это на /conf/prop
, если знаете, что интересующие вас узлы prop
всегда находятся в корневом узле conf
.
То же самое сxmllint
:
$ xmllint --xpath '//prop[name = "one thing"]/value/text()' file.xml
2