Парсинг XML из сценария оболочки

Если Вы владеете файлом, setfacl -m u:otheruser:rwx filename

В противном случае или если Ваша файловая система не поддерживает расширенный acls, я боюсь, что Вам не повезло.

4
03.02.2012, 13:28
3 ответа

Изучите usling xslt сценарии, чтобы преобразовать или проанализировать Ваш XML, xsltproc является двоичным файлом, который Вы ищете, и w3cschools имеют хорошее руководство по началу работы.

1
27.01.2020, 21:00

awk solución.

$ awk -F= '/name="rsv-group-name"/{g=$NF}/data="name4"/{print substr(g,2,length(g)-5)}' inputfile
1
27.01.2020, 21:00

Группа group 2, а неgroup 3:

xmlstarlet sel -t \
    -v '//Key[Key/Value[@name="rsv-login-name" and @data="name3"]]/Value[@name="rsv-group-name"]/@data' -nl file.xml

Или со значением запроса, взятым из командной строки:

xmlstarlet sel -t --var data="'name3'" \
    -v '//Key[Key/Value[@name="rsv-login-name" and @data=$data]]/Value[@name="rsv-group-name"]/@data' -nl file.xml

Как вариант,

xmlstarlet sel -t --var data="'name3'" \
    -m '//Key/Key/Value[@name="rsv-login-name" and @data=$data]' \
    -v '../../Value[@name="rsv-group-name"]/@data' -nl file.xml

Результатом любого из них будет group 2.

Запрос XPath ищет узел Key/Key/Value, который имеет name="rsv-login-name"и data="name3", и для узла Key, для которого этот узел является узлом Key/Value, возвращает атрибут dataдля Valueузел с name="rsv-group-name".

XML, который я использовал здесь, представляет собой слегка измененный документ, в который добавлен тег <root>в начале и конечный тег </root>в конце, чтобы сделать его хорошо -сформированным XML-документом.

2
27.01.2020, 21:00

Теги

Похожие вопросы