in reply to Space Out
#!/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
|
|---|