[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Re : Re : Re : problème de tri avec sort



Bonsoir,

On 08/24/2017 07:50 PM, nicolas.patrois@gmail.com wrote:
> Le 24/08/2017 17:57:43, Samy Mezani a écrit :
> 
>> Je viens d'essayer de trier le fichier 2 en ôtant au préalable les 
>> guillemets, voici ce que ça donne :
>> 97  32  98  64 116  10
>> 97  99  64 116  10
>> 97  64 116  10
>> 97  32 122  64 116  10
> 
>> Ça n'a pas l'air d'être dans un ordre lexicographique. C'est ça que je
>> ne comprend pas. Pour le fichier 1 pas de souci, mais pour le 2, à 
>> partir du moment où il y a une 2ème colonne, ça foire…
> 
> Tu devrais lire le manuel de sort pour y voir clair.
> Visiblement, il ne se contente pas de tri lexicographique brut mais plutôt sur les mots.
> 

Exact, au risque de donner la réponse bien vite, j'aimerais
insister sur le gros *warning* à la fin de la page de manuel :

       *** 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.

(mille excuses pour la version du manuel dans la langue de
Shakespeare, je n'ai pas installé les locales Françaises.)

Le réglage de la variable d'environnement LC_ALL a la valeur C
permet de retrouver un comportement « cohérent » à la commande
`sort` :

	$ export LC_ALL=C

	$ sort fichier1
	"a b"
	"a z"
	"a"
	"ac"

	$ sort fichier2
	"a b"@t
	"a z"@t
	"a"@t
	"ac"@t

	$ sort -t@ -k1 fichier2
	"a b"@t
	"a z"@t
	"a"@t
	"ac"@t

Notez que dans cet ordre les majuscules arrivent avant les
minuscules, donc si vos commandes `ls` ne réagissent pas comme
d'habitude dans cet environnement, c'est normal :

	$ touch IMPORTANT impeumoinportant
	$ ls
	IMPORTANT  fichier1  fichier2  impeumoinportant
	$ LC_ALL=en_US.UTF-8 ls
	fichier1  fichier2  impeumoinportant  IMPORTANT

Les problèmes de localisation sont sources de bugs souvent
incompréhensibles et récurrents.  C'est triste, c'est tellement
plus pratique d'avoir une machine qui parle comme soi-même.  :<

À plus,
-- 
Étienne Mollier <etienne.mollier@mailoo.org>


Reply to: