BASH Tips&Tricks #0004: Как получить "читабельный" LDIF-вывод

BASH
Что нам потребуется:
ldapsearch из поставки OpenLDAP 2.4.24, потому что начиная с этой версии появилась возможность отключить автоформатирование вывода с переносом строк благодаря опции ldif-wrap=no;
base64 — утилита из состава coreurils. Вероятнее всего, что она у вас уже есть;
bash — как известно, жизнь без него в Linux уныла и скучна :)

Как это делается:
ldapsearch ВАШИ_ОПЦИИ -o ldif-wrap=no ФИЛЬТР_ПОИСКА АТРИБУТЫ | \
while read l; do echo $l | grep '^\([^:]\+: \|$\)' || echo "${l%%:: *}: $(base64 -d <<<${l#*:: })"; done

Советую облегчить себе жизнь и не копировать каждый раз код из статьи, а добавить соотв. функцию в свой «домашний» ~/.bashrc. Выполните данный код в командной строке, в конце (после EOF) нажмите ENTER:

cat <<'EOF' >> ~/.bashrc

un64ldif () {
 while read l; do
  echo $l | grep '^\([^:]\+: \|$\)' || \
   echo "${l%%:: *}: $(base64 -d <<<${l#*:: })"
 done
 return 0
}
EOF

Сделав это единожды, вы теперь сможете творить чудеса, передавая вывод ldapsearch своей функции по трубе вводы-вывода:
ldapsearch ВАШИ_ОПЦИИ -o ldif-wrap=no ФИЛЬТР_ПОИСКА АТРИБУТЫ | un64ldif

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.