Obtengo una lista de todos los usuarios de LDAP usando el siguiente comando ldapsearch -x -LLL uid=* > result
.
El resultado del siguiente comando da como resultado el siguiente formato
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
Hay una lista completa de estos registros.
Quiero preseleccionar todos los uid en un archivo de modo que solo se incluya el valor del uid.
shahrukh
abc
xyz
....
....
....
Respuesta1
Puede especificar atributos después de su filtro y solo mostrará esos atributos.
P.ej:
ldapsearch -x -LLL uid=* uid > result
Esto podría darte un montón de uid: 12345
líneas. Es posible que luego tengas que pasarlo por un tubo sed
para quitar la parte que no deseas. (Alternativamente, si lo haces con perl
y Net::LDAP
puedes extraer precisamente lo que quieres, pero creo que ldapsearch
+ sed
es el camino de menor resistencia).
Respuesta2
La forma más sencilla sería canalizar los resultados a grep y luego cortarlos. El ejemplo es
ldapsearch -x -LLL uid=* | grep uid: | cut -d: -f2 > results