【发布时间】:2015-12-17 19:30:54
【问题描述】:
我正在尝试将 LDAP 上的每个用户回显到一个文本文件中,但使用自定义格式:
最终目标是具有以下格式:
uid=cn <mail>
所以一个例子是:
jdoe=John Doe <john.doe@company.com>
jdoe1=Jane Doe <jane.doe@company.com>
...
我目前正在终端(Ubuntu 14.04)中执行以下操作:
echo `ldapsearch -x -h 127.0.0.1 -b "dc=company,dc=com" uid=* cn mail` >> ldap-users.txt
它得到了我需要的一切,但格式如下:
# extended LDIF # # LDAPv3 # base <dc=company,dc=com> with scope subtree # filter: uid=* # requesting: cn mail # # jdoe, Special Users, company.com dn: uid=jdoe,ou=Special Users,dc=company,dc=com cn: John Doe User mail: john.doe@company.com # jdoe1, People, company.com dn: uid=jdoe1,ou=People,dc=company,dc=com cn: Jane Doe mail: jane.doe@company.com # ....... # search result search: 2 result: 0 Success # numResponses: 1387 # numEntries: 1386
注意:这一切都吐在一行中。
感谢您的帮助,
谢谢
编辑:所以通过研究更多我发现我可以做到:
ldapsearch -LLL -x -h 127.0.0.1 -b "dc=covisint,dc=com" uid=* cn mail
通过添加 -LLL 它不会在输出上打印 ldap cmets。结果为以下格式:
dn: uid=jdoe,ou=Special Users,dc=company,dc=com cn: John Doe User mail: john.doe@company.com ................... dn: blahblahblha... etc
所以这很有帮助,现在如果有办法删除“uid=”和“,ou=...,dc=company,dc=com”和“cn:”和“mail:”
【问题讨论】:
标签: regex linux bash ldap ldap-query