I have an ldif file that I need to edit:

dn: cn=MTOP,cn=users,dc=myco,dc=com
orcldefaultprofilegroup: cn=myco,cn=portal_groups,cn=groups,dc=myco,dc=com
cn: MTOP
orclactivestartdate: 20031028060637Z
objectclass: top
objectclass: person
objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: orclUser
objectclass: orclUserV2
sn: Joe
givenname: Blow
o: myo
userpassword: {MD4}oLezu+AceuHBDEBHFuVDwg==

dn: cn=me,cn=users,dc=polk,dc=com
orcldefaultprofilegroup: cn=user_grp,cn=portal_groups,cn=groups,dc=myco,dc=com
userpassword: {MD4}oLezu+AceuHBDEBHFuVDwg==
orclactivestartdate: 20031030114555Z
objectclass: top
objectclass: person
objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: orclUser
objectclass: orclUserV2
cn: me
uid: me
sn: Administrator
givenname: me
o: myco

I need to take every line I find with
cn: <name here>
copy it and add a line right after it that reads
uid: <name here>

i.e. the final output should look like

dn: cn=MTOP,cn=users,dc=myco,dc=com
orcldefaultprofilegroup: cn=myco,cn=portal_groups,cn=groups,dc=myco,dc=com
cn: MTOP
uid: MTOP
orclactivestartdate: 20031028060637Z
objectclass: top
objectclass: person
objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: orclUser
objectclass: orclUserV2
sn: Joe
givenname: Blow
o: myo
userpassword: {MD4}oLezu+AceuHBDEBHFuVDwg==

In some cases there is already a UID, in other cases there is only a cn in other cases there is not and that needs to be captured. The number of lines in the record is variable as well. I'm stumped on this one guys. Any ideas?


In reply to Perl File Manipulation by topperge

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.