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
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 > |