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 = ;
    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/;'

Ce contenu a été publié dans Linux. Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *