Aller au contenu principal
Sujet: Bug de 'sort' avec Leap 15.2 et fr_FR.UTF-8 ? (Lu 1557 fois) sujet précédent - sujet suivant

Bug de 'sort' avec Leap 15.2 et fr_FR.UTF-8 ?

Bonjour,

je pense avoir déniché un bug concernant 'sort' avec la configuration locale française.

Pourriez-vous effectuer un petit test dans une console pour voir ?

  • On va changer les paramètres linguistiques locaux, on va donc sauvegarder comme c'est chez vous en ce moment, pour les remettre après le test… Dans une console, notez la valeur actuelle de la variable LANG:
echo $LANG
chez moi j'ai de_DE.UTF-8 , pour beaucoup d'entre vous ce sera fr_FR.UTF-8 (sinon us_US.UTF-8)
On passe maintenant au test…

  • On passe les paramètres linguistiques au français:
LANG=fr_FR.UTF-8

  • Test de tri avec la commande 'sort', selon le champs numéro 5 (ordre décroissant, numérique), on affiche un bon paquet…
ls -l /usr/bin/ | sort -nrk 5 | head -n 500
Le classement selon le champs N°5 ne s'effectue pas correctement chez moi.
Qu'en est-il chez vous ?

  • On essaye avec des paramètres linguistiques différents
LANG=de_DE.UTF-8
ls -l /usr/bin/ | sort -nrk 5 | head -n 500
Le classement est maintenant correct (chez moi),
qu'en est-il chez vous ?

Vous pouvez essayer avec LANG=us_US.UTF-8
Ça marche aussi…

  • Le test est fini, il faut configurer vos paramètres régionaux comme ils étaient avant
on écrit la valeur de la variable LANG que l'on avait notée au début, dans la variable LANG:
LANG=fr_FR.UTF-8
Même sans effectuer cette dernière commande, il me semble qu'en fermant la console tout redevient comme avant.

A+

Re : Bug de 'sort' avec Leap 15.2 et fr_FR.UTF-8 ?

Répondre #1
Bonsoir,

Je ne rencontre pas ce soucis sous Leap 15.2 ni, à titre de comparaison, sous Fedora 33.
Peux-tu renvoyer la sortie en erreur ? (avec un
head -n5
pour être moins verbeux)

Peut-être un mauvais alias est définit pour
ls
, que renvoit
which ls
?

Re : Bug de 'sort' avec Leap 15.2 et fr_FR.UTF-8 ?

Répondre #2
Je ne rencontre pas ce soucis sous Leap 15.2 ni, à titre de comparaison, sous Fedora 33.
Peux-tu renvoyer la sortie en erreur ? (avec un
head -n5
pour être moins verbeux)
J'ai mis -n assez, car selon les ordinateurs, une erreur peut apparaître par exemple à la 30 ième ligne (ou plus).
Sur un deuxième ordinateur, c'était le cas chez moi, et j'ai pensé que tout allait bien. Alors que non.
Avec Tumbleweed, ça fonctionne correctement.

Sur l'ordinateur avec lequel je suis, une erreur apparait vite, sans évoquer l'ordre en lui-même…
thierry@toto-PC:~> LANG=fr_FR.UTF-8
thierry@toto-PC:~> ls -l /usr/bin/ | sort -nrk 5 | head
-rwxr-xr-x 1 root root    15182904 12. mai   2020  flashplayer
-rwxr-xr-x 1 root root     9441608 25. juin  2020  gimp-2.10
-rwxr-xr-x 1 root root     6323384 16. mai   2020  librecad
-rwxr-xr-x 1 root root     3625200 15. juin  2020  kleopatra
-rwxr-xr-x 1 root root     3589528 25. juin  2020  gimp-console-2.10
-rwxr-xr-x 1 root root     3188584 16. mai   2020  konversation
-rwxr-xr-x 1 root root     3159680 28. oct.  14:01 zypper
-rwxr-xr-x 1 root root     2992656 23. nov.  23:59 vim-nox11
-rwxr-xr-x 1 root root     2496112 10. oct.  02:57 Xvnc
-rwxr-xr-x 1 root root    22878400  2. déc.  15:13 mariabackup

thierry@toto-PC:~> LANG=de_DE.UTF-8
thierry@toto-PC:~> ls -l /usr/bin/ | sort -nrk 5 | head
-rwxr-xr-x 1 root root    22878400  2. Dez 15:13 mariabackup
-rwxr-xr-x 1 root root    15182904 12. Mai 2020  flashplayer
-rwxr-xr-x 1 root root    12626608  1. Jan 11:51 gdb
-rwxr-xr-x 1 root root     9441608 25. Jun 2020  gimp-2.10
-rwxr-xr-x 1 root root     9112288  7. Dez 23:28 ld.bfd
-rwxr-xr-x 1 root root     6323384 16. Mai 2020  librecad
-rwxr-xr-x 1 root root     5123096  2. Dez 15:13 mysql_ldb
-rwxr-xr-x 1 root root     5123072  2. Dez 15:13 sst_dump
-rwxr-xr-x 1 root root     4508080  2. Dez 15:13 aria_chk
-rwxr-xr-x 1 root root     4466416  2. Dez 15:13 aria_read_log

Avec debug, je vois que le(s) champs sont différents selon la langue.
(je ne l'affiche pas, la sortie n'est pas très propre sur le forum (ou je ne connais pas la manipulation pour présenter correctement)
Concrêtement, pour la langue française, deux champs sont pris en comptes, le 5ième et le 6ième (le jour), sauf quand le jour ne comporte qu'un seul chiffre.
Pour l'allemand, l'anglais, uniquement le 5ième champs.

Que donne ces commandes ? (est-ce que le(s) champs pris en compte sont les mêmes selon la langue ?)
thierry@toto-PC:~> LANG=fr_FR.UTF-8                    
thierry@toto-PC:~> ls -l /usr/bin/ | sort --debug -nrk 5 | head -n 30
thierry@toto-PC:~> LANG=de_DE.UTF-8                    
thierry@toto-PC:~> ls -l /usr/bin/ | sort --debug -nrk 5 | head -n 30

Peut-être un mauvais alias est définit pour
ls
, que renvoit
which ls
?
thierry@toto-PC:~> which ls
/usr/bin/ls
Je n'ai défini qu'un seul alias supplémentaire, les autres sont ceux par défaut.
alias sz='sudo zypper up --details'

-------------------------
J'ai essayé sur Tumbleweed, pas de soucis, et sur CentOS en machine virtuel, sans soucis aussi.
Par contre sur deux machines différentes avec Leap 15.2, j'ai le même soucis.

Re : Bug de 'sort' avec Leap 15.2 et fr_FR.UTF-8 ?

Répondre #3
Je pense que c'est un soucis (ou pas) de l'option "-n" de sort, avec l'option "-g" à la place ça tri correctement (et oui j'ai le même soucis si je pense plus de ligne en sortie avec certains paquets).
J'ai l'impression que "-n" trie les chaînes numériques entre elles et qu'entre 3000 et 33500 par ex, 3000 vient avant (?? juste une supposition).

Re : Bug de 'sort' avec Leap 15.2 et fr_FR.UTF-8 ?

Répondre #4
C'est un bug.
Regarde les champs qui sont pris en compte avec la commande:
thierry@toto-PC:~> LANG=fr_FR.UTF-8                   
thierry@toto-PC:~> ls -l /usr/bin/ | sort --debug -nrk 5 | head -n 30
Le 5ième et le 6ième est souligné, il s'agit des champs pris en compte lors de cette commande… Alors que l'unique champs qui devrait être pris en compte est le 5.
Sauf quand le numéro du jour est compris entre 1 et 9 (à un chiffre en somme).

-> Ce n'est pas la cas avec les paramètres linguistiques de_DE.UTF-8 ou us_US.UTF-8.
Avec ces paramètres, en debugguant, le champs N°6 n'est jamais souligné i.e. jamais pris en compte pour le classement, le classement est donc correct.

====================================
Oui, j'avais aussi remarqué qu'avec l'option -g ça fonctionnait correctement.