in reply to File Name Standardization
There are a number of perl functions to help. tr/_/ / will transliterate underscore to space. s/(\w+)/ucfirst $1/eg will give initial caps. opendir/readdir, glob, or <pathglob> will produce a list of files to work on. Finally, rename will do the job.
Untested, but it's pretty straightforward. I do underscore transliteration first, because underscore is a \w character and would interfere with uppercasing the way I do it. File::Basename is in the standard distribution. The regex in fileparse() is used to select what counts as a filename extension. I made it everything from the last dot to the end. Alter to taste.# Assumes no non-mp3 regular files in the dir use File::Basename; for (glob('/path/to/*')) { -f or next; # don't mess with directories, etc my ($file,$dir,$ext) = fileparse($_,qr/\.[^.]+$/); $file =~ tr/_/ /; $file =~ s/(\w+)/ucfirst $1/eg; rename $_, $dir.$file.'.mp3' or warn 'Failed to rename ',$_,': ',$ +!; }
Update: Added warning for failed rename. Fixed pasteo.
After Compline,
Zaxo
|
|---|