#!/usr/bin/perl -w
#
# Name: ren-multi-files
# renames multiple files by batch
# remark "./" at the beginnig of the produced command for mv because of the dash of the filename, interpreted as option by mv
# writes batch to STDOUT
# 
# by Gerd Hoffmann (C)
#
# 111204

use strict;

my ( $i, $name, $newname, @dirlist ) ;
my $dir = "./"  ;
#my $pattern = "-home-down_etc-video-mydownloads-wanted-video_ts(.*)" ;
my $pattern = "--";

opendir(DIR, $dir) || die "no $dir?: $!";
while ( $name = readdir(DIR) ) { # skalarer Kontext, einer pro Schleifendurchlauf
      if( $name =~ /(.*)$pattern(.*)/) {
         $newname = "$1-$2" ;
#         $name="\"$name\""; # perhaps it will also work without this line ?
         print "mv ./$name ./$newname\n";      
      }
}


__END__


opendir(DIR, $dir) || die "kein $dir?: $!";
foreach  $name (sort (readdir(DIR)) ) {
   (@dirlist) = (@dirlist,$name);
#   print "$name\n"; 
}
closedir(DIR);




# mit printf formatierte Liste, numeriert
print "\nContent of directory $dir:\n\n"; 
for ($i = 0; $i <= $#dirlist; $i++,$i++) {
   printf"  %s%3s  %25s      %s%3s   %25s\n", 
              ( -d $dirlist[$i] ) ? '*' : " ",
              $i+1, 
              $dirlist[$i], 
              ( (defined($dirlist[$i+1])) && ( -d $dirlist[$i+1] ) ? '*' : " " ),
              ( defined($dirlist[$i+1]) ? $i+2 : "" ),
              ( defined($dirlist[$i+1]) ? $dirlist[$i+1] : "" ) ;
}

############# mit format
#for ($i = 0; $i <= $#dirlist; $i++) {
#   write STDOUT;
#}

#format STDOUT =
#   @##   @<<<<<<<<<<<<<<<<<<<      @##   @<<<<<<<<<<<<<<<<<<<  
#   $i+++1, $dirlist[$i-1],         $i+1, $dirlist[$i]
#.


