Hello, > Truc tr�s dr�le avec la knoppix-mib 3.2:
Pas sp�cifique � la knoppix-mib � mon avis. Sur ma debian testing, c'est
du m�me genre.
> avec la locale fr_CH:
> ls /usr/bin/m*[A-Z]*
> retourne tous les fichiers commen�ant par m alors qu'il n'ont pas
> de [A-Z]
Pas tout � fait. (cf plus loin)
> avec la locale C:
> [EMAIL PROTECTED] export LANG=C
�a peut ne pas suffir pour tester. (cf plus loin)
> Sur une Debian stable avec la locale fr_CH je n'ai pas ce probl�me non
> plus.
En fait, selon le man de bash, c'est pas seulement LANG qui importe,
mais LC_COLLATE. (voir man bash, partie Pattern Matching du chapitre
EXPANSION). Si tu as d�j� quelque chose sett� pour LC_COLLATE, un
"export LANG=C" ne change pas LC_COLLATE:
$ export LC_COLLATE=C
$ locale
LANG=en_US
LC_CTYPE=fr_CH
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE=C
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=
$ export LANG=fr_CH
$ locale
LANG=fr_CH
LC_CTYPE=fr_CH
LC_NUMERIC="fr_CH"
LC_TIME="fr_CH"
LC_COLLATE=C
LC_MONETARY="fr_CH"
LC_MESSAGES="fr_CH"
LC_PAPER="fr_CH"
LC_NAME="fr_CH"
LC_ADDRESS="fr_CH"
LC_TELEPHONE="fr_CH"
LC_MEASUREMENT="fr_CH"
LC_IDENTIFICATION="fr_CH"
LC_ALL=
On voit que le LC_COLLATE ne change pas avec le export LANG=fr_CH.
Maintenant, c'est vrai, le LC_COLLATE n'est en g�n�ral pas sett� par les
utilisateurs. Un petit exemple:
($ commandes, # commentaires, sinon r�sultat de la commande):
$ mkdir test_collate
$ cd test_collate
$ touch a b c d e f g h i j k l m n o p q r s t u v w x y z
$ touch A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
#
# on a alors une s�rie de fichiers avec toutes les lettres
# en majuscule et minuscule
#
$ unset LANG LC_CTYPE LC_COLLATE
#
# reset des locales
#
$ export LC_COLLATE=C
$ echo [C-G]
C D E F G
#
# parfait
#
$ export LC_COLLATE=fr_CH
$ echo [C-G]
C d D e E f F g G
#
# hoops !!! en fait, l'ordre des lettre avec fr_CH est a A b B ...
#
$ export LC_COLLATE=en_US
$ echo [C-G]
C d D e E f F g G
#
# idem avec en_US
#
Donc, avec la commande "ls /usr/bin/m*[A-Z]*", tu auras pas tous les
fichiers, commen�ant par m, mais ceux commen�ant par m, et ayant une des
lettres A-Z ou b-z dans le nom. (donc, ma maa maaa ne seront pas
affich�s).
(explication trouv�e dans le bug debian #203820, avec pl_PL, mais le
m�me principe).
Le plus important, c'est:
si on a LANG=fr_CH (mais aussi en_US, pl_PL, ...), un ordre du genre:
rm [A-Z]*
va effacher tous les fichiers comman�ant par A B C ... Z, comme d�sir�,
mais aussi ceux comman�ant par b c d .. z. Ce qui n'est en g�n�ral pas
souhait� ! Seul les fichiers comman�ant par a seront �pargn�s.
Ca semble venir de la norme POSIX.
Bonne journ�e.
Olivier
--
Olivier Bornet | fran�ais : http://puck.ch/f
Swiss Ice Hockey Results | english : http://puck.ch/e
http://puck.ch/ | deutsch : http://puck.ch/g
[EMAIL PROTECTED] | italiano : http://puck.ch/i
Get my PGP-key at http://puck.ch/pgp or at http://wwwkeys.pgp.net
pgp00000.pgp
Description: PGP signature
