Hallo!
Das folgende Beispiel liest alle Dateien eines Verzeichnis ein. Dann liest es alle html-Dateien aus und löscht die <meta ...> Zeile raus. Es erstellt aber eine neue Datei, so dass die alte noch erhalten bleibt. Man könnte noch einbauen, dass die Originaldateien auf *.bak etc. umbenannt werden...
Wie das funktioniert mit Unterverzeichnissen kann ich im Moment leider nicht sagen, da ich keine Zeit zum Testen hab. Aber ich könnte mir vorstellen, dass man zuerst testen muss obs ein Verzeichnis ist (z.B. mit if -d $variable) und dann dieselbe Prozedur noch einmal aufruft.
Hier also mein Skript:
Code:
#!/usr/bin/perl -w
my $Path = "D:\\work\\temp\\html\\";
my @AllFiles = ();
opendir(EIN, $Path) || die "Kann Ordner $Path nicht ”ffnen.\n$!";
@AllFiles = readdir(EIN);
closedir(EIN);
foreach(@AllFiles) {
if ($_ =~ /.+\.html/) {
print $_, "\n";
open(EIN, "<".$Path.$_) or die "Kann html-Datei nicht oeffnen.\n";
open(AUS, ">".$Path."n_".$_) or die "Kann Ausgabedatei nicht oeffnen.\n";
while(<EIN>) {
chomp($_);
next if ($_ =~ /\<META name\=generator .+\>/);
print AUS $_, "\n";
}
close(AUS);
close(EIN);
}
}
Fragen? Fragen!
mfg
Hussl