Comment utiliser la commande «sort» de linux bash dans un script portable?


1

J'écris un script bash et je veux le rendre portable, pour avoir les mêmes résultats sur les autres ordinateurs.

De cette question , j'ai appris les paramètres du système, tels que les paramètres de langue et éventuellement d' autres variables, peuvent affecter les résultats de la même commande de tri exactement sur le même fichier d'entrée et arguments.

Ma question est donc de savoir comment utiliser le tri et assurer le résultat attendu dans les autres systèmes. Quelles variables système dois-je prendre en compte? Est-ce que mettre LC_ALL=Cb résout tout le problème?


J'ai eu un problème similaire, peut-être que cela pourrait vous aider. stackoverflow.com/questions/10486736/…
maths

1
Lisez la sortpage de manuel pour chaque système prévu. Pour les systèmes GNU (c.-à-d. Linux), vous pouvez trouver plus de détails info sort, en particulier voir la note de bas de page.
Glenn Jackman

Réponses:


1

Oui, LC_ALL=Ccela résoudra vos problèmes de portabilité (il se comportera de la même manière sur tous les systèmes)

Notez cependant que cela ne signifie pas nécessairement qu'il fera ce que vous voulez . "C" locale va trier sur la valeur d'octet. Ce qui est bien si toutes vos données sont en ASCII pur. Toutefois, si vos données peuvent contenir d’autres jeux de caractères (par exemple d’autres langues de la série ISO-8859- *, KOI-R ou des cieux interdisant les jeux de caractères multi-octets tels que UTF-16, UTF-8, etc.), la rupture sera effroyable.

Mais ce serait toujours portable, car ça casserait horriblement de la même manière sur toutes les plateformes.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.