#!/usr/bin/perl use strict; my $people=0; while (<>) { if (/dn: uid=(.*),ou=People.*$/) { $people = 1; print "$& cn: $1 gidNumber: 201 homeDirectory: /home/$1 loginShell: /bin/false objectClass: posixAccount sambaDomainName: sambaHomeDrive: M: sambaHomePath: \\\\{pdc}\\homes sambaProfilePath: \\\\{pdc}\\profiles\\$1 "; } elsif (/dn: uid=.*,ou=Computer.*/) { $people = 2; print "$&\n"; } elsif (/dn:.*/) { $people = 0; print; } elsif (/sambaSID: .*-(\d*)/ && $people == 1) { print "$&\nuidNumber: $1\n"; } elsif ($people == 2 && /^(sambaPrimaryGroupSID:.*-)\d*$/) { print "${1}515\n"; } else { print; } }