Einzelnen Beitrag anzeigen
Alt 09.07.2004, 07:47   #2
Hussl
Veteran
 
Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320


Standard

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
____________________________________
Nein, ich bin nicht die Signatur, ich putz hier nur.

http://www.chili-it.at
Hussl ist offline   Mit Zitat antworten