【问题标题】:Bash script to save ldapsearch with custom format用自定义格式保存 ldapsearch 的 Bash 脚本
【发布时间】: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


    【解决方案1】:

    这不是特别优雅,但通过以下管道传输 ldapsearch 命令的输出似乎适用于我刚刚尝试的快速而肮脏的测试:

    | sed 's/uid=/\nuid=/'g | awk 'NR>2 { for( i=1; i<=NF; i++ ) { if ( $i ~ /uid=/ ) { printf "%s=", substr( $i, 5, index( $i, "," ) - 5 ) }; if ( $i ~ /cn:/ ) { printf "%s %s ", $(i+1), $(i+2) }; if ( $i ~ /mail:/ ) { printf "<%s>\n", $(i+1) }; } }'
    

    【讨论】:

    • 谢谢,这几乎是正确的,有两个小问题,第一个用户的 uid 没有出现,而且它把所有的东西都写在一行中(这还不错,但它会是方式让每个用户都在一个新行上更容易更好).. 编辑:只是为了清楚 -LLL 它删除了第一个 uid,但没有 -LLL 它保留了第一个用户的 uid 但在它之前有一个 = ..
    • awk 脚本开头的“NR>2”会导致第一行输入被跳过,因此删除它应该可以让您获得第一个用户。但是,我不知道为什么所有内容都写在一行上;最终 printf 之后的“\n”应该导致每个用户打印在单独的行上(假设每个用户都有一个打印在尖括号中的电子邮件地址)。
    • 啊,好吧..嗯,我会尝试更多地弄乱它,看看我是否能做对..:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 2011-04-29
    • 1970-01-01
    相关资源
    最近更新 更多