У меня есть экспорт ldif, в котором я хочу создать выходной файл с одной строкой на запись ldif; одна строка содержит различные значения атрибутов в определенном порядке.
Таким образом, команды должны анализировать каждую запись ldif, начинающуюся с атрибута dn:, и оценивать различные атрибуты, извлекать их значения, а затем выводить строку с разделителями в выходной файл (например, uid | cn | sn | givenName | building | title | manager - - как это).
Команды Linux или perl будут работать, спасибо за идеи.
Напишите сценарий Perl, используя существующий модуль для анализа LDIF (например, Сеть :: LDAP :: LDIF) и распечатайте по желанию.
Пример:
use 5.012;
use Net::LDAP::LDIF;
my $ldif = Net::LDAP::LDIF->new( "file.ldif", "r", onerror => 'undef' );
while ( not $ldif->eof ) {
my $entry = $ldif->read_entry;
if ( $ldif->error ) {
say "Error msg: ", $ldif->error;
say "Error lines:\n", $ldif->error_lines ( );
}
say(join('|',
$entry->get_value('uid'),
$entry->get_value('cn'),
$entry->get_value('sn')
));
}
$ldif->done;