Mailinglist Archive: opensuse-programming-de (23 mails)

< Previous Next >
Re: [opensuse-programming-de] Großkleinschreibung per Skript in html Dateien umwandeln
  • From: Jan Trippler <Jan.Trippler@xxxxxxxxxxx>
  • Date: Fri, 4 May 2007 22:15:45 +0200
  • Message-id: <200705042215.45625.Jan.Trippler@xxxxxxxxxxx>
Moin,

Am Freitag, 4. Mai 2007 01:09 schrieb David Haller:
[...]
> Das geht auch einfacher.
>
> perl -pi.bak -e 's/(<img\s+[^>]*src=)"([^"]+)"/$1"\L$2"/g' *.html
[...]

Da hab ich auch noch einen: Zuerst mal sind IIRC in HTML auch groß 
geschriebene Tags erlaubt (deshalb s/.../.../gi). Außerdem kann man 
die Patterns etwas vereinfachen, wenn man ihnen die Gierigkeit 
abgewöhnt (?-Modifikator). Und zum Schluss erwischt man mit dem o. 
g. Beispiel keine <img>-Tags, die sich über mehrere Zeilen 
erstrecken.

Die Variante für die ersten beiden Probleme würde ich so machen:
perl -pi.bak -e 's/(<img\s+.*?src=)(".+?")/$1\L$2/ig' *.html

Für das letzte Thema musste ich ein wenig in Larry Walls Schwarte 
stöbern und bin auf die Kommandozeilen-Option -l gestoßen:
perl -i.bak -lp0e 's/(<img\s+.*?src=)(".+?")/$1\L$2/ig' *.html

Damit wird $/ (OUTPUT_RECORD_SEPERATOR) wie gewohnt auf \n gesetzt, 
$\ (INPUT_RECORD_SEPERATOR) aber auf \0 - was wenig überraschend in 
html-Dateien selten vorkommt. Und so marschiert die gesamte 
Eingabedatei als $_ in die Ersetzung, \n ist nicht länger was 
Besonderes und die Ersetzung flutscht auch über mehrere Zeilen. Die 
einzige Einschränkung (mit der man sicher leben kann) ist, dass 
dadurch ein zusätzlicher Zeilenvorschub ans Ende der Datei gesetzt 
wird.

Viele Wege führen nach Rom, aber die mit Perl sind die lustigsten 
und kürzesten ;-)

Jan
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-programming-de+help@xxxxxxxxxxxx

< Previous Next >
List Navigation
Follow Ups