Сквош-файл со значением ключа -записывается в CSV

Как вы уже поняли, групповые записи и их элементы являются просто :Отдельными записями без жесткой связи.

У вас есть два варианта:

  1. Реализуйте собственный сценарий для удаления записи участника и его DN из атрибута member в записи группы.
  2. Используйте оверлей OpenLDAP slapo -refint , чтобы разрешить slapd удалить ссылку на члена из записи группы, если вы удалите запись члена.

3
22.06.2021, 10:54
1 ответ
$ cat tst.awk
BEGIN {
    OFS = ","
    numTags = split("name description email lastLogon status",tags)
}
{
    tag = val = $0
    sub(/ *:.*/,"",tag)
    sub(/[^:]+: */,"",val)
}
(tag == "name") && (NR>1) { prt() }
{ tag2val[tag] = val }
END { prt() }

function prt(   tagNr,tag,val) {
    for ( tagNr=1; tagNr<=numTags; tagNr++ ) {
        tag = tags[tagNr]
        val = ( tag in tag2val ? tag2val[tag] : "n/a" )
        printf "%s%s", val, (tagNr<numTags ? OFS : ORS)
    }
    delete tag2val
}

$ awk -f tst.awk file
John Doe,AM,john@doe.cc,999999999999999,active
Jane Doe,HR,jane@doe.cc,8888888888,active
Foo Bar,XX,foo@bar.cc,n/a,inactive

Если вы хотите распечатать строку заголовка, просто добавьте ее в конец секции BEGIN:

for ( tagNr=1; tagNr<=numTags; tagNr++ ) {
    tag = tags[tagNr]
    printf "%s%s", tag, (tagNr<numTags ? OFS : ORS)
}
3
28.07.2021, 11:23

Теги

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