Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: fixing broken ldif files (replacing = with : )

by strat (Canon)
on Dec 09, 2004 at 08:43 UTC ( [id://413452]=note: print w/replies, xml ) Need Help??


in reply to fixing broken ldif files (replacing = with : )

Well, I don't know how is the exact rule for the dn, but I'd do it about the following way:
open (FH, $filename) or die ... local $/ = "\n\n"; # read objects, not lines while (<FH>) { chomp($_); # remove \n\n at the end of the object s/\n //g; # care for continuation lines, e.g. kill them my @tmpLines = split(/\n\n/, $_); my %data = (); foreach my $line (@tmpLines) { my ($attr, $value) = split(/\s*=\s*/, $line, 2); # do something with $attr and $value, e.g. push (@{ $data{$attr} }, $value); } # foreach # e.g. extract first uid as dn my $dn = shift( @{ $data{uid} } ); print "dn: $dn\n"; foreach my $attr (keys %data) { foreach my $value (@{ $data{$key} }) { # perhaps you should care to create continuation lines # or better write the ldif with Net::LDAP::LDIF print "$attr: $value\n"; } } print "\n"; # object separator } # while close (FH);
or the like... (not tested)

Best regards,
perl -e "s>>*F>e=>y)\*martinF)stronat)=>print,print v8.8.8.32.11.32"

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://413452]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (5)
As of 2024-03-29 11:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found