Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use File::Find;
- finddepth (\&recursive, "./");
- sub recursive {
- push @path, "$File::Find::dir/";
- push @files, $_;
- }
- @files = File::Spec->no_upwards( @files );
- foreach my $file (@files) {
- my (@parts, @name);
- push @name, split(/\./,$file);
- foreach my $piece (@name) {
- if ($piece =~ /[[:alpha:]]/ && $piece =~ /[[:digit:]]/) {
- push @parts, $piece;
- } else {
- push @parts, substr $piece, 0, 1;
- }
- }
- push @newname, join('.',@parts);
- }
- pop @path;
- %h = ();
- @newname = map { s/(\d*)$/$1 + 1/e while $h{$_}; $h{$_}++; $_ } @newname;
- while ( @files and @newname ) { rename shift @files, shift @newname }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement