Thread Zeichenfolge in html Datei, hänge an Dateinamen an
(9 answers)
Opened by hansH at 2007-08-24 23:37
Der Einfachheit halber poste ich nochmal das angepasste Script:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #!/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=<FILE>) { 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" } } } } die Änderungen sind in den Zeilen 7/8 sowie 27. Ich habe einen String "$replacestring" hinzu gefügt, über den der in den Dateinamen einzufügende String erzeugt wird. |