Страница 1 из 1

Массовое переименование тхт файлов

Добавлено: 06 май 2010, 20:21
Tvitvi
Подскажите плиз...Как правильно написать такой скрипт?
Даем скрипту папку с тхт файлами он поочередно переименовывает их по порядку 1,2,3,4,5 и тд

Re: Массовое переименование тхт файлов

Добавлено: 23 май 2010, 09:23
Vasilisk
#!/bin/perl -w



# refill.pl -dir= -start=

use strict;

use Cwd;



my $dir = cwd();

my $start = 10;

my $step = 10;



foreach(@ARGV){

if($_ =~ /^[-\/](.+?)=(.+?)$/){

if($1 eq 'dir'){ $dir = $2; }

elsif($1 eq 'start'){ $start = $2; }

}

}



opendir DR,$dir or die "Unable to open directory!\n";

my $file;

my @files = ();



while($file = readdir(DR)){

if(-f $file && $file ne 'refill.pl'){ push @files,$file; }

}

closedir DR;



my @sortfiles = sort {$b cmp $a} @files;



my $ci = $#sortfiles*$step + $start;

for(my $i=0; $i < scalar(@sortfiles); $i++){



my $nname = sprintf('%05d',$ci);

$ci -= $step;

my $cname = $sortfiles[$i];



$cname =~ s/(.+)\.(.+?)$/$nname.$2/i;



rename $dir.'/'.$sortfiles[$i],$dir.'/'.$cname;

}