#!/usr/bin/perl -w
#
# Name: ren-multi-files
#     searchstring: /^(.*)${pattern}$/
#     truncates pattern
# renames multiple files by batch
# removes special extension
# writes batch to STDOUT
# 
# by Gerd Hoffmann (C)
#
# 211025

use strict;

my ( $i, $name, $newname, @dirlist ) ;
my $dir = "./"  ;
my $pattern = ".JPG";
my $new_ext = ".jpg";

opendir(DIR, $dir) || die "kein $dir?: $!";
while ( $name = readdir(DIR) ) { # skalarer Kontext, einer pro Schleifendurchlauf
      if( $name =~ /^(.*)${pattern}$/) {
         $newname = "$1$new_ext";
         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]
#.

