#!/usr/bin/perl -w use Net::LDAP::LDIF; my $perso = $ARGV[0]; my $dup = $ARGV[1]; $perso = Net::LDAP::LDIF->new( "$perso", "r", onerror => 'undef' ); my $out = Net::LDAP::LDIF->new( "-", "w", onerror => 'undef' ); while( not $perso->eof ) { my $remove = 0; $entry1 = $perso->read_entry; if ( $perso->error ) { print "Error msg ($ARGV[0]): ", $perso->error, "\n"; print "Error lines ($ARGV[0]):\n", $perso->error_lines, "\n"; } else { my $dn1 = $entry1->dn; $dup = Net::LDAP::LDIF->new( $ARGV[1], "r", onerror => 'undef' ); while( not $dup->eof ) { $entry2 = $dup->read_entry; if ( $dup->error ) { print "Error msg ($ARGV[1]): ", $dup->error, "\n"; print "Error lines ($ARGV[1]):\n", $dup->error_lines, "\n"; } else { my $dn2 = $entry2->dn; if ($dn1 eq $dn2){ print "Dup DN: $dn1\n"; $remove = 1; } } } $dup->done; if (not $remove){ $out->write_entry($entry1); } } } $perso->done; $out->done;