SORT
Section : Manuel de l'utilisateur Linux (
1)
Mise à jour de la version anglaise : 30 juillet 2003
Index
Menu principal
NOM
sort - Trier les lignes d'un fichier texte
SYNOPSIS
sort
[-cmus] [-t séparateur] [-o fichier_de_sortie] [-T répertoire_temporaire]
[-bdfiMnr] [+POS1 [-POS2]] [-k POS1[,POS2]] [fichier...]
sort
{--help,--version}
DESCRIPTION
Cette page de manuel documente la version GNU de
sort.
sort
trie, regroupe ou compare toutes les lignes des fichiers indiqués.
Si aucun fichier n'est fourni, ou si le nom `-' est mentionné,
la lecture se fera depuis l'entrée standard.
Par défaut,
sort
écrit ses résultats sur la sortie standard.
sort
peut opérer suivant trois modes : tri (par défaut), regroupement, et
vérification de l'ordre. Les options suivantes modifient le mode
opératoire :
- -c
-
([NDT] c = check - vérifier)
Vérifie si les fichiers fournis sont déjà triés : s'ils ne le sont
pas, afficher un message d'erreur, et terminer avec un code de
retour valant 1.
- -m
-
([NDT] m = merge - melanger)
Regrouper les fichiers indiqués en les triant. Chaque fichier d'entrée
doit déjà être trié individuellement. Il est toujours possible de
trier plutôt que de réunir, le regroupement est fourni parce qu'il est
plus rapide dans les cas où il fonctionne.
La comparaison de deux lignes se fait ainsi :
Si un champ clé a été indiqué,
sort
compare chaque paire de champs, dans l'ordre précisé sur la ligne
de commande, jusqu'à ce qu'une différence soit trouvée, ou qu'il
ne reste plus de champs.
Si l'une des options globales
Mbdfinr
est utilisée, et si aucun champ clé n'est indiqué,
sort
compare les lignes entières en fonction des options globales.
Finalement, si toutes les clés sont égales, en dernier ressort
sort
compare les lignes octet par octet suivant l'ordre défini sur
la machine. Cette dernière comparaison accepte l'option globale
-r.
L'option
-s
(stable) inhibe cette comparaison en dernier recours afin que les
lignes considérées comme égales restent à leurs positions relatives.
Si aucun champ clé, et aucune option ne sont fournis,
-s
est sans effet.
La version GNU de
sort
n'a pas de limitation concernant la longueur des lignes d'entrée ou les
caractères autorisés. De plus, si le dernier octet d'une ligne d'entrée
n'est pas un saut de ligne (NewLine), la version GNU de
sort
en ajoute un automatiquement.
Si la variable d'environnement
TMPDIR
est configurée,
sort
utilise ce répertoire pour stocker les fichiers temporaires à la place
du répertoire par défaut /tmp. L'option
-T répertoire_temporaire
permet également de sélectionner un répertoire pour placer les fichiers
temporaires, elle a priorité sur la variable d'environnement.
Les options suivantes affectent l'ordre des lignes de sortie. Elles
peuvent être mentionnées globalement, ou appliquées à un champ clé
spécifique. Si aucun champ clé n'est indiqué, les options globales
s'appliquent aux comparaisons des lignes entières, sinon elles sont
transmises aux champs clés n'ayant pas d'option spécifique.
- -b
-
Ignorer les blancs en début de ligne pendant la recherche de la clé
de tri sur chaque ligne.
- -d
-
Trier dans l'ordre des répertoires téléphoniques : ignorer pour le
tri tous les caractères autres que les lettres, les chiffres et les blancs.
- -f
-
Considérer les minuscules comme leur équivalent en majuscule pendant
le tri. Ainsi `b' est trié de manière équivalente a `B'. ([NDT] Bien
entendu, cela ne fonctionne pas avec les minuscules accentuées...)
- -i
-
Ignorer pour le tri les caractères en dehors de l'intervalle ASCII
octal 040-0176 (bornes comprises).
- -M
-
Une chaîne initiale, consistant en un nombre quelconque de blancs, suivi
de trois lettres correspondant à une abréviation de mois est convertie
en majuscules avant d'être comparée dans l'ordre `JAN' < `FEB' < ... < `DEC.'
Les noms invalides sont considérés comme inférieurs aux noms valides.
(Ndt : qu'en-est-il vis-à-vis de la localisation ?)
- -n
-
Comparer suivant la valeur arithmétique d'une chaîne numérique initiale
composée d'espaces éventuelles, suivies optionnellement du signe -, et
de zéro ou plusieurs chiffres, éventuellement suivis d'un point décimal
et de zéro ou plusieurs chiffres.
- -r
-
Inverser l'ordre de tri, afin que les lignes avec la plus grande
valeur de clé apparaissent en premier.
Les autres options sont :
- -o fichier_de_sortie
-
Écrire dans le
fichier_de_sortie
plutôt que sur la sortie standard.
Si
fichier_de_sortie
est également un fichier d'entrée,
sort
copie les données dans un fichier temporaire avant le tri pour pouvoir
écrire correctement ses résultats dans le
fichier_de_sortie.
- -t caractère_séparateur
-
Utiliser le
caractère_séparateur
afin de distinguer les champs pour rechercher la clé de tri sur chaque
ligne. Par défaut le séparateur de champs est une chaîne blanche entre
chaînes non-blanches. Ceci signifie qu'avec l'entrée ` foo bar',
sort
distingue deux champs ` foo' et ` bar'. Le séparateur n'appartient
ni au champ précédent, ni au champ suivant.
- -u
-
Pour l'action par défaut, ou pour l'action
-m,
n'afficher que la première séquence de lignes considérées comme
égales. Pour l'action
-c,
vérifier qu'aucune lignes consécutives ne soient égales.
- +POS1 [-POS2]
-
Indiquer un champ à utiliser comme clé de tri pour chaque ligne. Le
champ consiste en une portion de de ligne débutant à la position POS1,
et s'étendant jusqu'à POS2 non-inclue (ou jusqu'à la fin de la ligne
si POS2 n'est pas mentionnée). Les positions des champs et des caractères
sont numérotées à partir
de 0.
- -k POS1[,POS2]
-
Une autre syntaxe possible pour indiquer les clés de tri.
Les positions des champs et des caractères sont numérotées à partir de 1.
Une position est de la forme f.c, où f est le numéro
du champ à utiliser, et c le numéro du premier caractère depuis le
début du champ (avec +pos) ou depuis la fin du champ précédent
(avec -pos). La partie .c de la position peut être
omise, auquel cas le caractère considéré est le premier du champ.
Si l'option
-b
est choisie, la partie .c d'une spécification de champ est comptée
à partir du premier caractère non-blanc du champ (pour +pos)
ou à partir du premier caractère non-blanc suivant le champ précédent
(pour -pos).
Un argument +pos ou -pos peut également avoir un préfixe
constitué d'une des lettres d'option
Mbdfinr
auquel cas les options globales ne s'appliquent pas à ce champ.
l'option
-b
peut être attachée indépendamment aux parties +pos ou -pos
d'une spécification de champ. Si elle est héritée d'une option globale,
elle s'appliquera aux deux parties.
Si une option
-n
ou
-M
est utilisée, ceci implique que l'option
-b
s'applique aux deux spécifications +pos et -pos.
Les clés peuvent s'étendre sur plusieurs champs.
De plus quand la version GNU de
sort
est invoquée avec un seul argument, les options suivantes sont reconnues :
- --help
-
Afficher un message d'aide sur la sortie standard et se terminer normalement.
- --version
-
Afficher un numéro de version sur la sortie standard et se terminer normalement.
CONFORMITÉ
Les implémentations historiques (BSD et System V) de
sort
diffèrent quant à leur interprétation de certaines options, notamment
-b,
-f,
et
-n.
La version GNU suit le comportement POSIX, qui est généralement
(mais pas toujours) celui de la version System V.
Suivant POSIX
-n
n'implique plus obligatoirement
-b.
Pour assurer l'homogénéité,
-M
a été modifiée de la même manière.
Dans certains cas, assez obscurs, ceci peut affecter la signification
des positions de caractères dans les spécifications de champs.
Si ceci vous perturbe, vous pouvez ajouter explicitement un
-b.
BOGUES
Les différentes significations des numéros de champs en fonction de
l'utilisation ou non de l'option
-k
induit une confusion certaine.
C'est la faute à POSIX !
TRADUCTION
Christophe Blaess, 1996-2003.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- CONFORMITÉ
-
- BOGUES
-
- TRADUCTION
-
Dernière mise à jour : 19 novembre 2007