我知道如何使用 ldapsearch 请求特定属性(通过在 cli 调用结束时传递它们):
ldapsearch -x -D "..." -b "..." sn cn displayName
现在,我如何才能仅指定那些我不需要的特定属性?我目前请求所有属性并“grep 掉”那些我不想要/不需要的属性:
ldapsearch -x -D "..." -b "..." | grep -v mail
有没有更优雅的方式来做到这一点?我的意思是,除了创建一个没有这些属性的 ACL 的用户 ;-)。
短暂性脑缺血发作
答案1
我不知道有什么优雅的方法,但你可以采用两步方法来完成。
在第一列,使用-A
选项仅获取属性名称。从列表中删除您不关心的属性。
在以下调用中,使用该列表。例如:
cols=$(ldapsearch -A (...) | tail -n +2 | grep -v "jpegPhoto\|thumbnailPhoto" | tr -d '\n' | sed 's/:/ /g')
ldapsearch (...) $cols
答案2
尽管它可能提供你想要的东西,但请考虑一下这是一个令人讨厌的黑客行为
ldapsearch ... | grep -v '^\s'
这是基于ldapsearch 2.4.28
OSX 的输出,并与每个-L
输出选项(包括无)一起使用。
这里的关键是,大条目在下一行以一个前导空格继续,因此我们排除以一个前导空格结尾的行。