#!/usr/bin/perl use strict; use warnings; my $basepath='./test/'; my $regexp_file=qr'(?<=^Stichwort\w{4})(?=\.html$)'; my $replacestring='_%s'; my $regexp_search=qr'www id: (\d+)'; opendir(DIR,$basepath) or die "Konnte Verzeichnis $basepath nicht oeffnen ($!)\n"; my @filelist = grep{$_=~/$regexp_file/ and -f $basepath.$_}(readdir(DIR)); closedir(DIR); for my $filename (@filelist) { print "untersuche $basepath$filename\n"; unless(open(FILE,'<',$basepath.$filename)) { print "konnte $basepath.$filename nicht öffnen ($!)\n" } else { my $new_filename=$filename; while(my $line=) { if(my($number)=$line=~/$regexp_search/) { $new_filename=~s/$regexp_file/sprintf($replacestring,$number)/e; last; } } close(FILE); if($new_filename ne $filename) { unless(-e $basepath.$new_filename) { rename($basepath.$filename,$basepath.$new_filename) or print "Konnte $basepath.$filename nicht zu $basepath.$filename umbenennen ($!)\n" } else { print "Kann $basepath.$filename nicht zu $basepath.$new_filename umbenennen (Datei mit dem Namen existiert bereits!)\n" } } } }