gudn tach!
Ich habe folgendes Problem: Ich will aus ungefähr 500 HTML-Dateien sämtliche Hyperlinks (mehrere Tausend Verweise!!) entfernen, alle im Format <A HREF="indiv.pl?name=*">
Ich benutze üblicherweise die Freeware Proton, um die HTML-Dateien zu bearbeiten,
ich habe frueher auch viel mit proton gearbeitet. bin irgendwann auf vim umgestiegen, weil der alles kann, was proton kann aber eben auch viiiiiel mehr. auch dein problem koennte mit vim geloest werden.
aber es gibt auch andere moeglichkeiten, z.b. das in perl geschriebene, auf regexp basierende, freie tool textre. es braucht keine installation und schreibt auch nix in die registry, sondern laeuft einfach so. unter windows und unter linux.</werbung>
wenn du perl schon installiert hast, lad dir die datei textre.pl runter. wenn du kein perl installiert hast, dann textre.exe.
zum suchen und ersetzen kommen regulaere ausdruecke wie in perl zum einsatz.
der befehl, um alle verweise zu loeschen koennte lauten:
textre "<a .*?>.*?</a>" "" --f=".html$" --r --t
"<a .*?>.*?</a>" ist der suchausdruck
"" ist der ersetzausdruck (es wird hier also durch nix ersetzt)
mit dem parameter f waehlt man dateien aus.
mit dem parameter r gibt man an, dass auch unterverzeichnisse durchwuehlt werden sollen.
mit dem parameter t laesst man sich erst mal die aenderungen anzeigen, ohne dass wirklich was ersetzt wird.
wenn nur die links, nicht aber die jeweiligen verlinkten texte ersetzt werden sollen, dann waere das via back-reference moeglich:
textre "<a .*?>(.*?)</a>" "$1" --f=".html$" --r --t
beachte aber: das setzt verschiedenes voraus: z.b. muss der code valide sein. wenn end-tags im code fehlen, passiert _irgendwas_. ebenso wird auch z.b. javascript-code durchsucht, sodass sowas wie "document.write('<a aetsch');" oder auch sowas wie "if(b<a) foo;" zu problemem fuehren koennte. deshalb immer erst mit dem t-parameter testen.
prost
seth