* Quoting Johannes Hölzl <[EMAIL PROTECTED]>: > $ LC_ALL="de_DE" > $ LANG="de_DE"
Das ist schon mal wenig sinnvoll. Der Inhalt von LC_ALL überschreibt all die anderen LC_*-Variablen und sollte nicht gesetzt werden. Stattdessen ist dann LANG die Voreinstellung für alle nicht explizit gesetzten Variablen. Damit kann man dann einzelne Kategorien überschreiben. > $ env LANG=de_DE echo Diii | sed 's/\([A-Z]\)/_\1/g' > _D_i_i_i > $ env LANG=C echo Diii | sed 's/\([A-Z]\)/_\1/g' > _Diii > > Hier dürfte es doch keine unterschiede geben. Oder ? Doch. LC_COLLATE bestimmt die Sortierreihenfolge. In C gibt's da nur die ASCII-Werte, daher gilt [A-Z]=[ABCDE-WXYZ]. Andere Locales wissen mehr, und dann ist [A-Z]=[AbBcCdD-xXyYzZ] (ohne 'a'!); das ist sehr schön beim Sortieren, aber natürlich Blödsinn in der Shell - aber da kann man nichts machen. > Mit "en" gibt es das selbe Ergebnis wie mit "C" ! Sicher, denn 'en' ist keine gültige Locale, also gilt der Rückfallwert C. > Wo liegt der Fehler? Mach ich was falsch, bei "sed" in "locals" > oder ist es so, wie es jetzt abläuft, richtig ? Über richtig oder falsch kann man streiten, auf alle Fälle aber das dokumentierte Verhalten. (Was ist "locals"?) Ciao, Micha PS: Johannes, dein Absender ist fehlformatiert. Wenn du das 'ö' nicht richtig rüberkriegst, nimm lieber ein 'oe'. -- |=| Michael Piefel |=| Humboldt-Universität zu Berlin |=| Tel. (+49 30) 2093 3831