Hallo, Am Sam, 02 Sep 2006, Al Bogner schrieb:
Am Samstag, 2. September 2006 02:38 schrieb David Haller:
Am Sam, 02 Sep 2006, Al Bogner schrieb:
Ich möchte Großbuchstaben in Worte wandeln, also etwa "MEIN HAUS" in "Mein Haus", wobei dies auch bei zB Öö oder ?? funktionieren soll. Mit tr bin ich dazu nicht weitergekommen.
$ echo 'ICH MÖCHTE GROßBUCHSTABEN IN WORTE WANDELN, ALSO ETWA "MEIN HAUS" IN "MEIN HAUS", WOBEI DIES AUCH BEI ZB ÖÖ ODER ?? ??ßÄ FUNKTIONIEREN SOLL. MIT TR BIN ICH DAZU NICHT WEITERGEKOMMEN.' \
| perl -Mlocale -pe 's/\w+/\u\L$&/g'
echo "Ich möchte Großbuchstaben in Worte wandeln, also etwa "MEIN HAUS" in "Mein Haus", wobei dies auch bei zB Öö oder ?? funktionieren soll. Mit tr bin ich dazu nicht weitergekommen." | tr '[[:lower:]]' '[[:upper:]]' ICH MöCHTE GROßBUCHSTABEN IN WORTE WANDELN, ALSO ETWA MEIN HAUS IN MEIN HAUS, WOBEI DIES AUCH BEI ZB Öö ODER ?? FUNKTIONIEREN SOLL. MIT TR BIN ICH DAZU ^^ NICHT WEITERGEKOMMEN.
tr kann also nicht ? zu ? wandeln, obwohl
Irgendwas stimmt mit deiner Kodierung nicht, deine Mail ist als ISO-8859-15 deklariert, im Text steht '??ßÄ', vielleicht irgendwas komisches aus UTF-8... BTW: generell kann tr das weitgehend: $ perl -e 'print join("", map { chr($_); } 160..255 ), "\n";' | tr '[[:lower:]]' '[[:upper:]]' ¡¢£?¥?§?©ª«¬®¯°±²³?µ¶·?¹º»???¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ÷ØÙÚÛÜÝÞÿ $ locale LANG=en_US.ISO_8859-15 LC_CTYPE="en_US.ISO_8859-15" LC_NUMERIC="en_US.ISO_8859-15" LC_TIME="en_US.ISO_8859-15" LC_COLLATE=POSIX LC_MONETARY="en_US.ISO_8859-15" LC_MESSAGES="en_US.ISO_8859-15" LC_ALL= Es klappt also beim à (latin9:0xE0) bis þ (latin9:0xFE). Für den Rest fehlen in meiner Locale (wie gesagt glibc-2.1.3 [1]) wohl noch die Zuordnungen. [1] /lib/libc.so.6 --version GNU C Library stable release version 2.1.3, by Roland McGrath et al. [..] Compiled on a Linux 2.2.14 system on 2000-03-24.
locale LANG=de_AT.UTF-8 LANGUAGE=de_AT:de_DE:de:en_GB:en LC_CTYPE="de_AT.UTF-8"
Versuch's mal auch mit ner anderen Locale.
echo "ICH MöCHTE GROßBUCHSTABEN IN WORTE WANDELN, ALSO ETWA MEIN HAUS IN MEIN HAUS, WOBEI DIES AUCH BEI ZB ÖÖ ODER ?? FUNKTIONIEREN SOLL. MIT TR BIN ICH DAZU NICHT WEITERGEKOMMEN." | perl -Mlocale -pe 's/\w+/\u\L$&/g' Ich MöChte GroßBuchstaben In Worte Wandeln, Also Etwa Mein Haus In Mein Haus, Wobei Dies Auch Bei Zb ÖÖ Oder ?? Funktionieren Soll. Mit Tr Bin Ich Dazu Nicht Weitergekommen.
Das sieht schon besser aus, da scheint nur die Worterkennung nicht zu klappen. Versuch's mal mit | perl -Mutf8 -Mlocale -pe 's/\w+/\u\L$&/g' oder so. Bei mir klappt das obige: $ echo "ICH MöCHTE GROßBUCHSTABEN IN WORTE WANDELN, ALSO ETW MEIN HAUS IN MEIN HAUS, WOBEI DIES AUCH BEI ZB ÖÖ ODER ?? åÅ éÉ àÀ FUNKTIONIEREN SOLL. MIT TR BIN ICH DAZU NICHT WEITERGEKOMMEN." | perl -Mlocale -pe 's/\w+/\u\L$&/g' Ich Möchte Großbuchstaben In Worte Wandeln, Also Etwa Mein Haus In Mein ^^ ^^ Haus, Wobei Dies Auch Bei Zb Öö Oder ?? Åå Éé Àà Funktionieren Soll. Mit Tr Bin Ich Dazu Nicht Weitergekommen. $ perl -e 'print join("", map{chr($_).uc(chr($_))." ";} 160..255),"\n";' \ | perl -Mlocale -pe 's/\w+/\u\L$&/g' ¡¡ ¢¢ ££ ?? ¥¥ ?? §§ ?? ©© ªª «« ¬¬ ®® ¯¯ °° ±± ²² ³³ ?? µµ ¶¶ ·· ?? ¹¹ ºº »» ?? ?? ?? ¿¿ Àà Áá Ââ Ãã Ää Åå Ææ Çç Èè Éé Êê Ëë Ìì Íí Îî Ïï Ðð Ññ Òò Óó Ôô Õõ Öö ×× Øø Ùù Úú Ûû Üü Ýý Þþ ßß Àà Áá Ââ Ãã Ää Åå Ææ Çç Èè Éé Êê Ëë Ìì Íí Îî Ïï Ðð Ññ Òò Óó Ôô Õõ Öö ÷÷ Øø Ùù Úú Ûû Üü Ýý Þþ ÿÿ [Umbruch von mir nachträglich] Da scheint's das gleiche wie beim tr zu sein. Perl übrigens wegen der Worterkennung. Mit tr, sed und awk wird es häßlich.
Ich würde meinen, die übliche Problmatik, die ich seit langer Zeit kenne. Sieh dir mal "MöChte" an oder "Bei Zb ÖÖ Oder ??". Das ist leider nicht brauchbar, da kann ich gleich selber etwas mit individuellen Ausnahmen basteln, wie ich es schon jetzt habe. Auf Dauer werden es jedoch immer mehr Ausnahmen, die ich mit sed verarbeite.
Die kannst du auch in perl erledingen. Welche Perl-Version verwendest du? Und die Ausgabe von: perl -Mutf8 -e 'print "$utf8::VERSION\n";'? Ggfs. kannst du auch in perl die Locale noch ändern. -dnh -- "Das ist aber nett. Haftcreme mit Chili-Geschmack ..." -- O. Schad