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

Attachment: pgp00000.pgp
Description: PGP signature

Répondre à