Ich bin kein Freund von emacs, vi und eierlegenden Wollmilchsau'ditoren dieser Art. Zweifellos - sie können wahrscheinlich alles! Auch das, was ich nun aber mit einem kleinen Bash-Skript realisiert habe.
Nachdem ich auf mein neues python-befeuertes Blog umgestiegen bin, schreibe ich meine Blogartikel im Texteditor. Da ich die automatische Umwandlung von z.B. Umlauten in HTML-Entities nur von WYSIWYG-HTML-Editoren kenne und diese nicht ausstehen kann, hab ich nach einer Lösung gesucht, sämtliche Umlaute in einem Rutsch ersetzen zu lassen. Per Suchen-/Ersetzen-Befehl des Editors muß dies für jede Art Umlaut separat ausgeführt werden, was ziemlich nervig ist.
Doch unixoide Betriebssysteme bieten mit dem Streameditor sed ein mächtiges Tool, um Text-Ströme automatisch zu manipulieren. So schreibe ich meine Texte wie gewohnt mit Umlauten und setze danach folgendes Bash-Skript auf die Textdatei an:
Wobei das sedfile folgende regulären Ausdrücke beinhaltet:
Man beachte, dass die &'s mit Backslashes "escaped" sind. Das kaufmännische Und hat für sed normalerweise eine Steuerfunktion. Ohne Backslash geht's schief.
Der Umweg über eine Kopie der zu bearbeitenden Textdatei ist übrigens notwendig, da die direkte Variante eine leere Datei zur Folge hätte.
Als htmlentities.sh abgespeichert kommt das Skript, wer hätt's gedacht, folgendermaß zur Anwendung:
Nachdem ich auf mein neues python-befeuertes Blog umgestiegen bin, schreibe ich meine Blogartikel im Texteditor. Da ich die automatische Umwandlung von z.B. Umlauten in HTML-Entities nur von WYSIWYG-HTML-Editoren kenne und diese nicht ausstehen kann, hab ich nach einer Lösung gesucht, sämtliche Umlaute in einem Rutsch ersetzen zu lassen. Per Suchen-/Ersetzen-Befehl des Editors muß dies für jede Art Umlaut separat ausgeführt werden, was ziemlich nervig ist.
Doch unixoide Betriebssysteme bieten mit dem Streameditor sed ein mächtiges Tool, um Text-Ströme automatisch zu manipulieren. So schreibe ich meine Texte wie gewohnt mit Umlauten und setze danach folgendes Bash-Skript auf die Textdatei an:
#!/bin/bash
for item in $*
do
cp $item $item.bak
sed -f ~/scripts/sedfile $item.bak > $item
rm $item.bak
done
s/ä/\ä/g
s/ö/\ö/g
s/ü/\ü/g
s/Ä/\Ä/g
s/Ö/\Ö/g
s/Ü/\Ü/g
s/ß/\ß/g
Als htmlentities.sh abgespeichert kommt das Skript, wer hätt's gedacht, folgendermaß zur Anwendung:
./htmlentities.sh textdatei.txt