[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Discussion: ldapdelete.c



On Thu, 04 Mar 1999 15:00:23 EST, Ben Collins wrote:
> On Thu, Mar 04, 1999 at 11:51:50AM -0800, JR Heisey wrote:
> > I think it would be a convienence if ldapdelete could
> > read an LDIF file ingorning all lines except the line
> > the begin with 'DN: '. Then delete entry specified by
> > the DN field.
> 
> Simple solution:
> 
> grep ^dn: temp.ldif | awk -F: '{ print $2; }' | ldapdelete
> 
> > Generate an LDIF list using a filer (i.e.
> > objectclass=person)
> > then use ldapdelete to remove all the entries returned.
> 
> Easy as well:
> 
> ldapsearch objectclass=person dn | ldapdelete

I think that would only work by accident. You're asking for all entries 
matching (objectclass=person), and selecting an attribute called 'dn' 
from each one. This would print:

cn=Foo, dc=example, dc=com

cn=Bar, dc=example, dc=com

but only if the entries didn't have an attribute named 'dn', and 'dn' 
was a known attribute type. If they did exist, you'd get:

cn=Foo, dc=example, dc=com
dn= cn=Foo Bar,o=example,c=US

cn=Bar, dc=example, dc=com
dn= cn=Bar Foo,o=example,c=US

or something, which is not valid input for ldapdelete, I think.

Your awk script will go awry if any of the DNs contains colons as well 
:-(

Cheers,

Chris