2 votes

Veuillez expliquer comment utiliser la commande de tri dans Unix

Je suis nouveau sur UNIX. Veuillez expliquer la commande sort. J'ai des doutes concernant le séparateur de champ de tri. Par exemple : sort -k2, 2 nom_fichier, veuillez clarifier. Veuillez fournir un petit exemple.

2voto

karel Points 12999

Il y a une erreur de syntaxe dans sort -k2, 2 nom_du_fichier Il ne devrait pas y avoir d'espace délimiteur dans l'option -k2,2. De plus, cela éliminerait une source possible de confusion et/ou d'erreur (selon le contenu du fichier qui est trié) d'ajouter soit une option de tri par ordre alphabétique soit une option de tri numérique à la commande afin de rendre explicite comment les choses devraient être triées.

Exemples

cat fichier_non_trié.txt # fichier non trié d'origine
9 8 7
6 55 44
3 2 1

sort -k1 -n fichier_non_trié.txt # exemple 1
3 2 1
6 55 44
9 8 7

sort -k3 -n fichier_non_trié.txt # exemple 2
3 2 1
9 8 7
6 55 44

sort -k1,3 -n fichier_non_trié.txt # exemple 3
3 2 1
6 55 44
9 8 7

sort -k2,3 -n fichier_non_trié.txt # exemple 4
3 2 1
9 8 7
6 55 44

Explication

Par défaut, le délimiteur de champ est la transition de non-blanc à blanc.
KEYDEF -k est F[.C][OPTS][,F[.C][OPTS]] pour la position de début et de fin, où F est un numéro de champ et C une position de caractère dans le champ. Les deux sont d'origine 1, et la position de fin est par défaut la fin de la ligne.
-k1 - premier champ
-k3 - troisième champ
-k1,3 - commencer au premier champ, finir au troisième champ
-k2,3 - commencer au deuxième champ, finir au troisième champ
-n - comparer selon la valeur numérique de la chaîne

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X