Bash
En utilisant le tri
Recherche…
Introduction
sort est une commande Unix permettant de classer les données dans un ou plusieurs fichiers dans une séquence.
Syntaxe
- sort [option] filename
Paramètres
Option | Sens |
---|---|
-u | Rendre chaque ligne de sortie unique |
Remarques
Manuel d'utilisation complet du sort
ligne
Sorte de la commande de tri
sort
commande de sort
est utilisée pour trier une liste de lignes.
Entrée d'un fichier
sort file.txt
Entrée d'une commande
Vous pouvez trier toute commande de sortie. Dans l'exemple une liste de fichiers suivant un pattern.
find * -name pattern | sort
Rendre la sortie unique
Si chaque ligne de la sortie doit être unique, ajoutez l'option -u
.
Pour afficher le propriétaire des fichiers dans le dossier
ls -l | awk '{print $3}' | sort -u
Tri numérique
Supposons que nous ayons ce fichier:
test>>cat file
10.Gryffindor
4.Hogwarts
2.Harry
3.Dumbledore
1.The sorting hat
Pour trier ce fichier numériquement, utilisez l'option de tri avec -n:
test>>sort -n file
Cela devrait trier le fichier comme ci-dessous:
1.The sorting hat
2.Harry
3.Dumbledore
4.Hogwarts
10.Gryffindor
Inverser l'ordre de tri: Pour inverser l'ordre du tri, utilisez l'option -r
Pour inverser l'ordre de tri du fichier ci-dessus, utilisez:
sort -rn file
Cela devrait trier le fichier comme ci-dessous:
10.Gryffindor
4.Hogwarts
3.Dumbledore
2.Harry
1.The sorting hat
Trier par clés
Supposons que nous ayons ce fichier:
test>>cat Hogwarts
Harry Malfoy Rowena Helga
Gryffindor Slytherin Ravenclaw Hufflepuff
Hermione Goyle Lockhart Tonks
Ron Snape Olivander Newt
Ron Goyle Flitwick Sprout
Pour trier ce fichier en utilisant une colonne comme clé, utilisez l'option k:
test>>sort -k 2 Hogwarts
Cela va trier le fichier avec la colonne 2 comme clé:
Ron Goyle Flitwick Sprout
Hermione Goyle Lockhart Tonks
Harry Malfoy Rowena Helga
Gryffindor Slytherin Ravenclaw Hufflepuff
Ron Snape Olivander Newt
Maintenant, si nous devons trier le fichier avec une clé secondaire avec l'utilisation de la clé primaire:
sort -k 2,2 -k 1,1 Hogwarts
Cela va d'abord trier le fichier avec la colonne 2 comme clé primaire, puis trier le fichier avec la colonne 1 comme clé secondaire:
Hermione Goyle Lockhart Tonks
Ron Goyle Flitwick Sprout
Harry Malfoy Rowena Helga
Gryffindor Slytherin Ravenclaw Hufflepuff
Ron Snape Olivander Newt
Si nous avons besoin de trier un fichier avec plus d'une clé, nous devons spécifier pour chaque option -k où le tri se termine. Donc -k1,1 signifie que vous devez commencer le tri dans la première colonne et terminer le tri dans la première colonne.
option -t
Dans l'exemple précédent, le fichier avait le séparateur par défaut - tab. En cas de tri d'un fichier comportant un délimiteur autre que celui par défaut, l'option -t doit être utilisée pour spécifier le séparateur. Supposons que nous ayons le fichier ci-dessous:
test>>cat file
5.|Gryffindor
4.|Hogwarts
2.|Harry
3.|Dumbledore
1.|The sorting hat
Pour trier ce fichier selon la deuxième colonne, utilisez:
test>>sort -t "|" -k 2 file
Cela va trier le fichier comme ci-dessous:
3.|Dumbledore
5.|Gryffindor
2.|Harry
4.|Hogwarts
1.|The sorting hat