Я извлекаю из LDAP всех пользователей kerberos (но только некоторые их переменные, например, kerberosid, location, mail, name, фамилию, ...) в плоский файл (разделитель - конвейер).
Я пыталсяиспользовать синтаксис LDAP из LDAPSEARCH в табличный формат , но я имею в виду смешанные значения, которые я имею в виду (я вижу, например, то же имя в следующей строке, но следующая строка в файле начинается со второй записи LDAP и т. д.)Производительность важна.
Я бы предпочел иметь даже пустую строку в позиции, где значение отсутствует.Я не уверен, что это не происходит, потому что в некоторых предыдущих записях отсутствует целый индекс (переменная, например, mail), и с этой позиции все сдвигается ...
Блок кода по ссылке:
$ ldapsearch -x -D "cn=something" | awk -v OFS=',' '{split($0,a,": ")} /^mail:/{mail=a[2]} /^uidNumber:/{uidNumber=a[2]} /^uid:/{uid=a[2]} /^cn/{cn=a[2]; print uid, uidNumber,cn , mail}' > ldap_dump.csv
Результат поиска Ldap:
dn: xxxxx
objectClass: top
mail: 11111
uidNumber: 222 222
uid: 333, 3333
cn: 44444
somethingnext: 5555
dn: new records
objectClass: top
mail: aaaaa
uidNumber: bbbbb
uid: cccc, cccc
cn: ddddd
somethingnext: eeeee
каждая строка находится на новой строке, а между записями пустая новая строка
Needed output in a file should be :
11111|222 222|333, 3333|44444
aaaaa|bbbbb|cccc, cccc|ddddd