PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage an Skript- & Perlfreaks (HTML)



artspin
02.05.04, 19:46
Hi @ll!

Ich würde gerne in einer sehr großen HTML-Indexdatei (1,4MB) alle in ihr vorkommen Strings in der Form
.. HREF=rezept.cgi?17823773>..
durch
.. HREF=rezept.cgi@17823773.html>..
ersetzen.

Also
1) nach jedem .cgi soll das Fragezeichen durch ein @ ersetzt werden
2) nach der nachfolgenden Zahl soll .html eingefügt werden. Leider ist die Zahl danach nicht immer 8 Stellen groß.

BITTE, BITTE helft mir weiter... (egal wie :))

Ciao
-=<artSpin>=-

cotelli
02.05.04, 19:48
hi

das kann z.b.vim, (gvim+kvim sind mit grafischer oberfläche)
option: suchen+ersetzen

gruß cotelli

artspin
02.05.04, 19:54
Ich sehe nur darin das Problem, dass die Strings ja irgendwie dynamisch gehandhabt werden müssen -> ich kann ja nicht jedes ? durch ein @ ersetzen lassen, dann ersetzt es mir auch die "restlichen" Fragezeichen.

cotelli
02.05.04, 20:07
hi

sieh dir mal bitte den screenshot an, er sucht den eingegebenen string und ersetzt ihn durch den angegebenen, er ändert dir nicht ein ? in ein @ oder umgekehrt.
es sei denn du gibst es so in das suchmuster ein.

gruß cotelli

p.s. du kannst dir die datei auch erstmal sichern und dann probieren. :)

Nicolas
02.05.04, 20:08
Ich würde es mir KWrite machen, aber es müsste auch mit jedem anderen Editor gehen, der reguläre Ausdrücke unterstützt. Lass einfach ".cgi\?([\d]*)>" durch ".cgi@\1.html>" ersetzen und aktiviere "Regulärer Ausdruck" und "Platzhalter verwenden".

Nicolas

Who-T
02.05.04, 20:32
sed -e "s/cgi?\([0-9][0-9]*\)/cgi@\1.html/g" myfile.html

artspin
02.05.04, 21:04
Tausend Dank @Who-T (und die anderen auch :-)

So hat es genialst funktioniert. Ich musste nur noch die Ausgabe per
sed ... > index_neu.html in eine neue Datei umleiten.

Da fällt mir ein, ich hatte schon mal ein html-Bearbeitungsproblem vor einiger Zeit gehabt. Da hat mir auch ein "Guru" mit sed weitergeholfen. Das Teil ist ja echt der Hammer. Jetzt weiss ich auch, warum man mit sed & awk ein ganzes Buch füllen konnte!!! :D

Ciao
-=<artSpin>=-