Hallo, On Tuesday 01 March 2005 01:49, David Haller wrote:
Hm. Bei mir schien es LC_COLLATE (SuSE 9.1) zu sein (Zeilenumbrueche bei leerem 'grep' von mir nachgetragen, da sonst unleserlich):
slarty:~$ ( LINE="xxxyyyzzz"; for lang in de_DE en_US; do for chars \ in UTF-8 ISO-8859-1 ""; do export LC_CTYPE="${lang}.${chars}"; \ echo -n "$LANG, $LC_CTYPE: "; echo "$LINE" | grep -i -o "YYY" ; \ done; done; ) en_US.UTF-8, de_DE.UTF-8: yyy en_US.UTF-8, de_DE.ISO-8859-1: en_US.UTF-8, de_DE.: en_US.UTF-8, en_US.UTF-8: yyy en_US.UTF-8, en_US.ISO-8859-1: en_US.UTF-8, en_US.:
Aber das kann doch nicht gewollt sein! LC_CTYPE="ISO-8859-1" funktioniert NIE - auch komplett mit LC_ALL="ISO-8859-1" und LANG="ISO-8859-1" geht es nicht. Ich weiss nicht genau wieso, aber auf meinem System war/ist bis jetzt LANG="en_US" gesetzt (ohne charset). Was wird dann eigentlich als default charset genommen, sicher ISO. Muss ich LANG bzw. wenigstens LC_CTYPE auf UTF-8 umstellen nur damit grep funtioniert?
slarty:~$ ( LINE="xxxyyyzzz"; for lang in de_DE en_US; do for chars \ in UTF-8 ISO-8859-1 ""; do export LC_COLLATE="${lang}.${chars}"; \ echo -n "$LANG, $LC_COLLATE: "; echo "$LINE" | grep -i -o "YYY" ; \ done; done; ) en_US.UTF-8, de_DE.UTF-8: yyy en_US.UTF-8, de_DE.ISO-8859-1: yyy en_US.UTF-8, de_DE.: en_US.UTF-8, en_US.UTF-8: yyy en_US.UTF-8, en_US.ISO-8859-1: yyy en_US.UTF-8, en_US.: slarty:~
Hm, aber wenn LANG oder LC_CTYPE charset ISO haben sind diese greps auch immer leer.
Es scheint jedenfalls, dass du ein charset angeben musst.
Ja, aber immer UTF-8!? cu, Ruediger