Am Sonntag 03 Mai 2009 22:23:44 schrieb David Haller: Hallo David,
Am Son, 03 Mai 2009, Al Bogner schrieb:
Seit Jahren hoffe ich, dass man mit tr '[:upper:]' '[:lower:]' auch utf-8- Zeichen nach klein wandeln kann. Da tut sich aber nichts. Mit meinem Workaround
iconv -f UTF-8 -t Zeichensatz export LC_CTYPE=Zeichensatz
klappt das aber auch nur dann, wenn der andere Zeichensatz alle vorhandenen Zeichen abdeckt.
Bei einem Text mit spanischen, griechischen und türkischen Worten scheitere ich, wenn ich den nach klein wandeln möchte.
Irgendwelche Ideen?
perl -wpe 'BEGIN { use Encode; binmode(STDIN, ":utf8"); # oder binmode(STDIN, ":encoding(utf8)"); binmode(STDOUT, ":utf8"); # oder binmode(STDOUT, ":encoding(utf8)"); } s/.*/\L$&/g;' < EINGABEDATEI > AUSGABEDATEI
Das ":encoding(utf8)" prüft dabei die Kodierung.
Funktioniert hier mit Griechisch unter openSUSE-11.1 / perl-5.10 / Encode-2.23 sowie unter SuSE-6.2 / perl-5.8.6 / Encode-2.33.
Ist zwar ein bisschen schräg, aber wie integriere ich das am besten in ein (größeres ansonsten gut funktionierendes) bash-Skript? Irgendwann kommt der Text als Variable, zum Testen zB var="İndim Havuz Başına (Τι τα θέλεις τα λεφτά)" Bei der Gelegenheit wäre es auch gleich gut, eventuelle nicht druckbare Zeichen rauszuwerfen, die sich manchmal in den Text verirren (der von irgendwo herkommt) Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org