Назад | Перейти на главную страницу

Как разобрать экспорт ldif для значений атрибутов

У меня есть экспорт 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;