Комплексawkраствор:
awk 'NR<3{ h=(h=="")? $0 : h ORS $0 }NR>2{ uid[$1]=$5; us[$1]=$3 }
END{
print h;
for (u in uid) {
id=uid[u]; spvr=us[u]; printf("%-5s|%-11s|%-4s\n",u,spvr,id);
while (spvr in uid) {
spvr=us[spvr]; printf("%-5s|%-11s|%-4s\n",u,spvr,id)
}
}
}' yourfile
Выход:
user |supervisor |id
-----|-----------|----
a |b |1
a |c |1
a |d |1
b |c |2
b |d |2
c |d |3
e |b |4
e |c |4
e |d |4
Детали:
NR<3{ h=(h=="")? $0 : h ORS $0 }
-захват заголовка строк
uid[$1]=$5
-пользователь -идентификатормассив отношений
us[$1]=$3
-пользователь -руководительмассив отношений
spvr=us[u]
-1-й руководитель для текущего пользователя
while (spvr in uid) {... }
-пока супервизор находится в спискепользователей , получить родительский супервизор
Была такая же проблема. Приведенное мной DFS
было разделено на 2 части:uns
и prefixpath
.
«Прорывом» для меня стала активация диагностики дляcifs
:
$ echo 1 | sudo tee /proc/fs/cifs/cifsFYI
Затем, после еще одной неудачной попытки монтирования, я заглянул в журнал dmesg -
.$ dmesg
и увидел причину проблемы с креплением -:
fs/cifs/cifs_dfs_ref.c: cifs_compose_mount_options: Failed to resolve server part of <HERE_WAS_UNC_PART_OF_MY_DFS> to IP: -11
"Гугление" ошибки привело меня к следующим 2 статьям:
Краткое содержание этих статей:
keyutils
/etc/request-key.conf
:create cifs.spnego * * /usr/sbin/cifs.upcall -c %k
create dns_resolver * * /usr/sbin/cifs.upcall %k
Прибыль!