Hallo,
ich muss eine große Anzahl von Textdateien bearbeiten.
Hauptsächlich muss ich in diesen Textdateien bestimmte Teile
löschen und/oder durch andere Teile ersetzten.
P.E.R.L. = practical extraction & report language
Das wurde für sowas entworfen.
Beispiel:
Text 1 soll entfernt werden
oder
Text 1 soll durch text 2 ersetzt werden.
Da dieses teilweise nin mehr als 500 Dateien immer auf die
selbe Art und Weise geschehen soll, such ich nun ein Utility,
welches mir die Arbeit mit Hilfe einer Stapelverarbeitung
ermöglicht.
Dieses kurze Programmstück würde das alles erledigen,
hier ersetzen wir „Hawaii“ mit „Rora Tonga“ in allen
Dateien *.txt im aktuellen verzeichnis:
#### modtext.pl ####
$alter\_text = qq/Hawaii/;
$neuer\_text = qq/Rora Tonga/; # oder qq// wenn nur loeschen
for $filename (glob('\*.txt')) {
# alte Datei oeffnen, einlesen und schliessen
open FILE, "; close FILE;
# ersetze alten Text durch neuen Text - alle Treffer ersetzen
$text =~ s/$alter\_text/$neuer\_text/g;
print "schreibe $filename neu\n";
# neue datei oeffnen und rausschreiben und schliessen
open FILE, "\> $filename" or die "Couldn't open '$filename': $!";
print FILE $text; close FILE;
}
### modtext.pl ###
Aufruf wäre hier mit
c:\texte\\> perl modtext.pl
Es gibt sicher auch Tools dafür, aber das angesprochene Problem
schreit danach, auf einfache Art gelöst zu werden.
Perl für Windows:
http://downloads.activestate.com/ActivePerl/Windows/…
Grüße
CMБ