in reply to Perl File Manipulation
As a one liner...
perl -pi.bak -e 's/^cn:(.+)\n$/cn: $1\nuid: $1\n/;' file.name
See perlrun, perlreintro, and perlretut for more information on this one liner's technique.
The -p switch causes Perl to iterate through all the files in @ARGV, line by line, reading each line into $_, and then at the end of each loop iteration printing $_. The -i switch specifies "inline editing", which is implemented by opening a tempfile for output, and the input file for...input. After each iteration, $_ is printed to the temp file. Then at the end of script execution the original file is renamed with '.bak' appended to its name, and the tempfile is renamed to what the original file's name was. So when you're all done, it looks like your original file got modified, and its pre-modification version was saved with the .bak filename extension.
Update: I just realized this doesn't solve the issue of the uid: already existing in some places. Sorry.
Dave
|
|---|