Thread Zeichenfolge in html Datei, hänge an Dateinamen an (9 answers)
Opened by hansH at 2007-08-24 23:37

topeg
 2007-08-28 12:34
#98753 #98753
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
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.

View full thread Zeichenfolge in html Datei, hänge an Dateinamen an