I use something extra to clean up my music files after ripping them:
Sane Name
#!/usr/bin/perl -w
#sanename renames files in a given directory recursively.
#it removes capitals, spaces and other unwanted symbols
use strict;
use warnings;
use locale;
use File::Find;
my $dir = "/oggs/new"; #base search directory
find(\&files, $dir); #rename files
find(\&dirs, $dir); #rename dirs
sub files {
if (-f $_) {
my $newfile = $_;
# Converts all ~&@#%(){}[]"'`<>! _ to _
$newfile =~ s/(\~|\&|\@|\#|\%|\(|\)|\{|\}|\[|\]|\"|\'|\`|\<|\>|\!|\s
+-\s)/_/g;
$newfile =~ s/\s+/_/g; #replace whitespace with _
$newfile = lc($newfile); #convert to lowercase
$newfile =~ s/^\d{2}_//; #remove track numbers
$newfile =~ s/_-_/_/g; #replace _-_ with _
#print "$newfile\n";
print "$File::Find::name changed to $File::Find::dir/$newfile\n";
rename($File::Find::name, "$File::Find::dir/$newfile");
}
}
sub dirs {
if (-d $_) {
my $newfile = $_;
# Converts all ~&@#%(){}[]"'`<>! _ to _
$newfile =~ s/(\~|\&|\@|\#|\%|\(|\)|\{|\}|\[|\]|\"|\'|\`|\<|\>|\!|\s
+-\s)/_/g;
$newfile =~ s/\s+/_/g; #replace whitespace with _
$newfile = lc($newfile); #convert to lowercase
$newfile =~ s/^\d{2}_//; #remove track numbers
$newfile =~ s/_-_/_/g; #replace _-_ with _
#print "$newfile\n";
print "$File::Find::name changed to $File::Find::dir/$newfile\n";
rename($File::Find::name, "$File::Find::dir/$newfile");
}
}
Neil Watson
watson-wilson.ca |