Pages : 1
#1 Le 24/01/2017, à 11:22
- jdacier
[Résolu] Anomalie dans le tri des fichiers
Bonjour
J’utilise ubuntu1604 version MATE
Dans un dossier j’ai les fichiers suivants, ils sont triés par ordre alphabétique
Tableau_01
J’ai utilisé le script suivant pour pouvoir imprimer
#!/bin/bash
ls --group-directories-first > zyx-listing.txt
Le contenu de zyx-listing.txt est le suivant
tableau_02
10_filig.doc
10_filig.docx
10_filig.jpg
10_filig.odt
10_filig.pdf
matrice_ab.doc
matrice_ab.docx
matrice_abeille.doc
matrice_abeille.docx
matrice_abeille.jpg
matrice_abeille.odt
matrice_abeille.pdf
matrice_ab.jpg
matrice_ab.odt
matrice_ab.pdf
zyx-listing.txt
Le résultat est donc différent du tableau_01
Voici ci dessous 4 tableaux permettant de mieux cerner le problème
tableau_03 (contenu de zyx-listing.txt)
10_filig.doc
10_filig.docx
10_filig.jpg
10_filig.odt
10_filig.pdf
matrice_abeille.doc
matrice_abeille.docx
matrice_abeille.jpg
matrice_abeille.odt
matrice_abeille.pdf
matrice_.doc
matrice_.docx
matrice_.jpg
matrice_.odt
matrice_.pdf
zyx-listing.txt
tableau_04
10_filig.doc
10_filig.docx
10_filig.jpg
10_filig.odt
10_filig.pdf
matrice_abeille.doc
matrice_abeille.docx
matrice_abeille.jpg
matrice_abeille.odt
matrice_abeille.pdf
matrice_a.doc
matrice_a.docx
matrice_a.jpg
matrice_a.odt
matrice_a.pdf
zyx-listing.txt
tableau_05
10_filig.doc
10_filig.docx
10_filig.jpg
10_filig.odt
10_filig.pdf
matrice_ab.doc
matrice_ab.docx
matrice_abeille.doc
matrice_abeille.docx
matrice_abeille.jpg
matrice_abeille.odt
matrice_abeille.pdf
matrice_ab.jpg
matrice_ab.odt
matrice_ab.pdf
zyx-listing.txt
tableau_06
10_filig.doc
10_filig.docx
10_filig.jpg
10_filig.odt
10_filig.pdf
matrice_abc.doc
matrice_abc.docx
matrice_abc.jpg
matrice_abc.odt
matrice_abc.pdf
matrice_abeille.doc
matrice_abeille.docx
matrice_abeille.jpg
matrice_abeille.odt
matrice_abeille.pdf
zyx-listing.txt
Est ce qu'il s'agit d'un problème connu ou pas ???
Dernière modification par jdacier (Le 25/01/2017, à 22:52)
Hors ligne
#2 Le 24/01/2017, à 12:33
- helias
Re : [Résolu] Anomalie dans le tri des fichiers
Bonjour Jdacier,
Je ne vois pas trop ou est le problème dans ton script ou ce que tu attends de celui ci...
L'option " --group-directories-first " met en avant les répertoires avant les fichiers ... il ne trie pas dans l'ordre alpha° .
Si tu veux trier tu peux essayer ceci :
ls --group-directories-first | sort -d -f -b > zyx-listing.txt
Dis moi ce que ça donne.
Hélias
Hors ligne
#3 Le 24/01/2017, à 14:37
- jdacier
Re : [Résolu] Anomalie dans le tri des fichiers
Bonjour
Le résultat est le suivant
ls --group-directories-first | sort -d -f -b > zyx-listing.txt
=>
10_filig.doc
10_filig.docx
10_filig.jpg
10_filig.odt
10_filig.pdf
matrice_ab.doc
matrice_ab.docx
matrice_abeille.doc
matrice_abeille.docx
matrice_abeille.jpg
matrice_abeille.odt
matrice_abeille.pdf
matrice_ab.jpg
matrice_ab.odt
matrice_ab.pdf
Salut
Dernière modification par jdacier (Le 24/01/2017, à 14:40)
Hors ligne
#4 Le 24/01/2017, à 20:05
- helias
Re : [Résolu] Anomalie dans le tri des fichiers
Et ce n'est pas ce que tu voulais ?
Hors ligne
#5 Le 24/01/2017, à 20:19
- pingouinux
Re : [Résolu] Anomalie dans le tri des fichiers
Bonsoir,
On dirait que le point est ignoré dans le tri.
Hors ligne
#6 Le 24/01/2017, à 20:22
- MicP
Re : [Résolu] Anomalie dans le tri des fichiers
Bonsoir
michel@debg53sw:~/aeff$ (LANG=C ls) > zyx-listing.txt
michel@debg53sw:~/aeff$ cat zyx-listing.txt
10_filig.doc
10_filig.docx
10_filig.jpg
10_filig.odt
10_filig.pdf
matrice_ab.doc
matrice_ab.docx
matrice_ab.jpg
matrice_ab.odt
matrice_ab.pdf
matrice_abeille.doc
matrice_abeille.docx
matrice_abeille.jpg
matrice_abeille.odt
matrice_abeille.pdf
zyx-listing.txt
michel@debg53sw:~/aeff$
Dernière modification par MicP (Le 24/01/2017, à 20:31)
Hors ligne
#7 Le 24/01/2017, à 20:37
- pingouinux
Re : [Résolu] Anomalie dans le tri des fichiers
En effet, MicP. Voici d'ailleurs un extrait de man sort :
*** WARNING *** The locale specified by the environment affects sort order. Set LC_ALL=C to
get the traditional sort order that uses native byte values.
Hors ligne
#8 Le 24/01/2017, à 21:01
- MicP
Re : [Résolu] Anomalie dans le tri des fichiers
Merci pour l'extrait : un peu fatigué, je me voyais mal essayer d'expliquer l'importance des locales et je n'avais pas pensé à chercher dans la page man de sort
Hors ligne
#9 Le 25/01/2017, à 03:21
- MicP
Re : [Résolu] Anomalie dans le tri des fichiers
Comme je n'avais que des fichiers, j'avais oublié d'utiliser l'option --group-directories-first
De plus, comme il n'y avait aucun caractère accentués dans les noms de fichiers, je n'avais pas remarqué un petit défaut :
avec LANG=C, les caractères accentués (et autres non ASCII) ne seront pas affichés et remplacés par des ? car ce sont des caractères ASCII qui sont utilisés,
Donc, une solution serait de ne modifier temporairement que la variable LC_COLLATE :
michel@debg53sw:~/aeff$ (LC_COLLATE=C ls --group-directories-first) > zyx-listing.txt
michel@debg53sw:~/aeff$ cat zyx-listing.txt
un deuxième repertoire pour tester
un repertoire pour tester
un répertoire pour tester
10_filig.doc
10_filig.docx
10_filig.jpg
10_filig.odt
10_filig.pdf
matrice_ab.doc
matrice_ab.docx
matrice_ab.jpg
matrice_ab.odt
matrice_ab.pdf
matrice_abeille.doc
matrice_abeille.docx
matrice_abeille.jpg
matrice_abeille.odt
matrice_abeille.pdf
matricé_abeille.pdf
mµtrice_ab.pdf
màtrice_ab.pdf
mâtrice_ab.pdf
mâtrice_abeille.pdf
mätrice_ab.pdf
mätrice_abeille.pdf
zyx-listing.txt
michel@debg53sw:~/aeff$
NOTES : L'option --group-directories-first ne servirait à rien si l'on devait trier (par un "pipe" avec sort) la sortie de ls
Dernière modification par MicP (Le 25/01/2017, à 03:57)
Hors ligne
#10 Le 25/01/2017, à 12:31
- jdacier
Re : [Résolu] Anomalie dans le tri des fichiers
Bonjour
Je sais maintenant comment lister correctement mes dossiers, mais je ne comprends pas où est le problème. Je n'utilise jamais de caractères accentués, ni de blanc.
*** WARNING *** The locale specified by the environment affects sort order. Set LC_ALL=C to
get the traditional sort order that uses native byte values
The locale specified by the environment => sont elles francophones, linuxiennes, ou est-ce un problème hard ???
Salut
Hors ligne
#11 Le 25/01/2017, à 12:51
- MicP
Re : [Résolu] Anomalie dans le tri des fichiers
…The locale specified by the environment => sont elles francophones, linuxiennes, ou est-ce un problème hard ?…
Elles sont basées sur la norme POSIX et permettent justement les échanges d'informations entre tous les systèmes de toutes les langues de tous les pays.
Quand on installe Linux, on a le choix du langage à utiliser et du pays.
en fonction de ce choix, les variables locales sont définies pour le système.
Ensuite, quand on créé un compte utilisateur, on peut aussi faire en sorte que ce compte utilise un autre langage et/ou un autre fuseau horaire.
En fonction de ces choix, des variables locales sont définies :
michel@debg53sw:~$ locale
LANG=fr_FR.utf8
LANGUAGE=
LC_CTYPE="fr_FR.utf8"
LC_NUMERIC="fr_FR.utf8"
LC_TIME="fr_FR.utf8"
LC_COLLATE="fr_FR.utf8"
LC_MONETARY="fr_FR.utf8"
LC_MESSAGES="fr_FR.utf8"
LC_PAPER="fr_FR.utf8"
LC_NAME="fr_FR.utf8"
LC_ADDRESS="fr_FR.utf8"
LC_TELEPHONE="fr_FR.utf8"
LC_MEASUREMENT="fr_FR.utf8"
LC_IDENTIFICATION="fr_FR.utf8"
LC_ALL=
michel@debg53sw:~$
Et chacune de ces variables permettent de formater les informations d'une langue à l'autre.
Une date ne sera pas affichée de la même façon en fonction de la langue et du pays choisi
michel@debg53sw:~$ date
mercredi 25 janvier 2017, 12:54:33 (UTC+0100)
michel@debg53sw:~$
michel@debg53sw:~$ (LANG=C date)
Wed Jan 25 12:54:47 CET 2017
michel@debg53sw:~$
et c'est la même chose pour la monnaie, le valeurs numériques, les unités de mesure, l'encodage des caractères, fuseau horaire, l'ordre de tri des caractères, etc.
Voir :
https://wiki.debian.org/Locale
man locale
et du coup, tu peux faire aussi :
LANG=C man locale
avec n'importe quelle page man
Mais c'était juste pour la démonstration, car la commande man a déjà une option pour ça.
Par exemple, pour visualiser la page man de la commande man mais dans sa version US ASCII:
man -LC man
=======
NOTE : À propos des parenthèses dans la ligne de commandes :
(LC_COLLATE=C ls --group-directories-first) > zyx-listing.txt
J'avais mis une partie des commandes entre parenthèses, mais ce n'était pas indispensable pour cette ligne de commandes.
C'est simplement une habitude que j'ai prise et qui permet de ne ne modifier les variables locales que pour le shell qui lancera les commandes qui sont dans la parenthèse.
Dernière modification par MicP (Le 26/01/2017, à 02:33)
Hors ligne
#12 Le 25/01/2017, à 22:51
- jdacier
Re : [Résolu] Anomalie dans le tri des fichiers
Réponse pour MicP
merci pour tes explications, je ne risquais de trouver
Salut
Hors ligne
Pages : 1