recursive mass rename script
Hello,
here a little script called myrename.pl to mass rename all the file of a directory and all the sub-directory and all files.
I need this script to delete the space character in the filename
The script:
#!/usr/bin/perl
#
# Usage: rename perlexpr [files]
($regexp = shift @ARGV) || die "Usage: rename perlexpr [filenames]\n";
#print "REGEXP :$regexp:\n";
if (!@ARGV) {
@ARGV = <STDIN>;
chomp(@ARGV);
}
foreach $_ (@ARGV) {
$old_name = $_;
eval $regexp;
# print "Regexp after :$regexp:\n";
die $@ if $@;
#### rename($old_name, $_) unless $old_name eq $_;
rename($old_name, $_) unless $old_name eq $_; #or
#### warn "Couldn't rename $old_name to $_: $!\n";
print "$old_name ----> $_\n";
}
exit(0);
Using the script:
find ./ -print | tac | /usr/bin/myrename.pl '($file) = (m|.+/(.+)|); $file = $_ if (!defined($file));($newfile = $file) =~ s/ /_/g;$file2=quotemeta($file); s/$file2/$1$newfile/;'
Leave a Reply