Ordre de collation
Ordre de collation (en anglais collation order) : ordre dans lequel une locale compare les chaînes de caractères, choisi par la catégorie LC_COLLATE. En C et C.UTF-8, les chaînes se comparent octet par octet (ou point de code par point de code) : toutes les majuscules avant les minuscules, les lettres accentuées après z. En fr_FR.UTF-8, la comparaison suit les règles de la langue, en plusieurs passes : les accents et la casse ne départagent que des mots autrement égaux, et la ponctuation est d'abord ignorée.
Cet ordre change le résultat de sort, la signification d'un intervalle [a-z] dans une expression régulière et l'ordre des motifs du shell. Surtout, comm, join et uniq supposent une entrée triée dans leur propre ordre : un fichier trié sous fr_FR.UTF-8 puis comparé sous C.UTF-8 donne des résultats faux, parfois sans message. Un script fixe donc LC_ALL=C.UTF-8 pour toute la chaîne, ce qui est aussi plus rapide.
Dans les cours
- Traiter du texte : grep, sed, awk, jq, leçon 1 : Penser en flux : lignes, champs et petits outils
- Traiter du texte : grep, sed, awk, jq, leçon 2 : grep et les expressions régulières