Если Вы владеете файлом, setfacl -m u:otheruser:rwx filename
В противном случае или если Ваша файловая система не поддерживает расширенный acls, я боюсь, что Вам не повезло.
Изучите usling xslt сценарии, чтобы преобразовать или проанализировать Ваш XML, xsltproc является двоичным файлом, который Вы ищете, и w3cschools имеют хорошее руководство по началу работы.
awk
solución.
$ awk -F= '/name="rsv-group-name"/{g=$NF}/data="name4"/{print substr(g,2,length(g)-5)}' inputfile
Группа 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-документом.