close

Trier (Unix)

Aller à la navigation Aller à la recherche
Image
tri --help

sort est une commande des systèmes d' exploitation Unix et Unix-like , et plus généralement des systèmes POSIX [1] , qui lit un ou plusieurs fichiers texte (ou entrée standard ) et trie les lignes par ordre alphabétique ou selon les critères spécifiés, produisant le résultat sur la sortie standard ou sur un fichier. C'est un type de filtre .

sort peut également vérifier que les lignes lues sont déjà triées selon un certain critère. Dans ce cas, il ne produit aucun résultat et sa valeur de sortie est égale à 0si les données sont déjà triées, ou supérieure 0si ce n'est pas le cas.

sort peut supprimer directement les lignes dupliquées similaires à la commande uniq .

Syntaxe

La syntaxe générale de sort est la suivante :

trier [ options ] [-] [ fichier1 [ fichier2 ...]]

Les paramètres de fichier optionnels indiquent les fichiers texte à partir desquels lire les lignes à trier. Si plusieurs fichiers sont spécifiés, ils sont triés individuellement, puis les lignes sont fusionnées afin que le résultat final soit également trié. Si aucun fichier n'est spécifié, les lignes à trier sont lues depuis l'entrée standard .

Le double tiret --(facultatif) indique que les paramètres suivants ne doivent pas être considérés comme des options.

Options

Parmi les principales options figurent :

-c
Vérifiez que les lignes lues sont déjà triées selon les critères spécifiés. Dans ce cas, la commande ne produit pas de messages et la valeur de sortie est égale à 0si les données sont déjà triées, ou différente 0si elles ne le sont pas.
-m
Il suppose que les fichiers spécifiés sont déjà triés et procède à la fusion de leurs lignes.
-o nome_file
Écrit le résultat dans le fichier indiqué au lieu de la sortie standard .
-u
Élimine les lignes en double du résultat (similaire à ce que faisait la commande uniq ).
-f
Il ne fait pas la distinction entre les caractères majuscules et minuscules.
-r
Inverse le sens de l'ordre, produisant des résultats commençant par la valeur la plus élevée.
-n
Triez numériquement au lieu d'alphabétiquement.
-i
Ignorer les caractères non imprimables.
-k chiave_di_ordinamento
Indique une partie de la ligne à utiliser comme clé de tri. Vous pouvez spécifier cette option plusieurs fois pour définir plusieurs clés de tri à utiliser en cascade.
-t carattere
Spécifie le caractère à utiliser comme séparateur de champ (au lieu de la valeur par défaut) lors de la définition des clés de tri.

La version GNU de sort propose également les options suivantes, entre autres :

-g
Il trie numériquement en acceptant également les nombres reconnus par la fonction de bibliothèque standard du langage C ( par exemple , les nombres strtod() exprimés en notation scientifique).
-s
Il effectue un tri stable (avec les mêmes clés de tri, il conserve l'ordre d'origine des lignes).

Clés de tri

Cette option -kpermet de définir une clé de tri sur une portion de ligne. En spécifiant plusieurs options -k, vous pouvez définir plusieurs clés de tri à utiliser en cascade.

La syntaxe d'une clé de tri est la suivante :

numero_campo_iniziale[.indice_primo_carattere][tipo][,numero_campo_finale[.indice_ultimo_carattere][tipo]]

initial_field_number est une valeur numérique qui indique le numéro du champ (à partir de 1) à inclure dans la clé, et index_first_character est l'indice du premier caractère du champ à prendre en considération (à partir de 1).

De même, final_field_number , s'il est spécifié, indique le dernier champ à inclure dans la clé, et last_character_index est l'index du dernier caractère dudit champ.

Les deux peuvent être suivis de type , qui est un caractère qui spécifie le type de tri à effectuer pour le champ particulier (par exemple npour indiquer un tri numérique, fpour indiquer de ne pas prendre en compte la différence entre majuscules et minuscules, rpour inverser le tri).

La division d'une ligne en champs s'effectue sur la base du caractère séparateur spécifié avec l'option -t. En son absence, toute séquence d'espaces est considérée comme un séparateur.

Exemples

Tri alphabétique

Trier par ordre alphabétique pour toute la ligne :

$ chat exemple.txt
Jean 200
Alice 30
Charles 100
Bruno 5

$ tri exemple.txt
Alice 30
Bruno 5
Charles 100
Jean 200

Tri numérique avec clé

Trier numériquement en utilisant le deuxième champ comme clé :

$ chat exemple.txt
Jean 200
Alice 30
Charles 100
Bruno 5

$ tri -k 2 -n exemple.txt
Bruno 5
Alice 30
Charles 100
Jean 200

Trier les fichiers et répertoires par taille décroissante (cinquième colonne) :

$ ls -l | trier -n -r -k 5
-rw-r - r-- 1 racine racine 1057 1er mars 20:12 anneau + étoile
-rw-r - r-- 1 racine racine 727 1 mars 20:12 A_star
-rw-r - r-- 1 racine racine 535 1 mars 20:12 star2
-rw-r - r-- 1 racine racine 505 1er mars 20:12 spirales_et_étoiles
-rw-r - r-- 1 racine racine 503 1 Mar 20:12 courbes
-rw-r - r-- 1 racine racine 475 1 mar 20:12 simili
-rw-r - r-- 1 racine racine 458 1 Mar 20:12 anneau
-rw-r - r-- 1 racine racine 415 1er mars 20:12 étoiles
-rw-r - r-- 1 racine racine 387 1 mars 20:12 sprial
-rw-r - r-- 1 racine racine 377 1 Mar 20:12 polys

Remarques

  1. ^ Sort , sur The Open Group Base Specifications Issue 6 IEEE Std 1003.1 , 2004 Edition . Récupéré le 20 mai 2008 .

Objets associés

Liens externes

  • Trier : Trier les fichiers texte , sur le manuel GNU Texutils . Récupéré le 20 mai 2008 .
  • Trier , sur les pages de manuel Linux . Récupéré le 21 mai 2008 .
  • ( FR ) sort (1) , sur Solaris 10 Reference Manual Collection - man pages . Récupéré le 21 mai 2008 .