我使用以下命令來取得 LDAP 所有使用者的清單ldapsearch -x -LLL uid=* > result
。
以下命令的結果採用以下格式
dn: uid=shahrukh,ou=People,dc=example,dc=com
uid: shahrukh
cn: shahrukh
sn: shahrukh
loginShell: /bin/bash
uidNumber: 1086
gidNumber: 1086
homeDirectory: /home/ldap/shahrukh
這些記錄有完整的清單。
我想將一個文件中的所有 uid 列入候選名單,以便僅列出 uid 的值。
shahrukh
abc
xyz
....
....
....
答案1
您可以在篩選器後指定屬性,它只會顯示這些屬性。
例如:
ldapsearch -x -LLL uid=* uid > result
這可能會給你一堆uid: 12345
行。然後,您可能需要透過管道將其刪除,sed
以刪除您不需要的部分。 (或者,如果你這樣做perl
,Net::LDAP
你可以精確地提取你想要的東西 - 但我認為ldapsearch
+sed
是阻力最小的路徑)。
答案2
最簡單的方法是將結果透過管道傳輸到 grep,然後進行剪切。例子是
ldapsearch -x -LLL uid=* | grep uid: | cut -d: -f2 > results