sort lit des lignes complètes, les ordonne selon les règles choisies et écrit le résultat sur stdout. Il ne modifie pas l'entrée sans opération de sortie explicite.
Text-Fu · Leçon 12
sort
Apprenez à ordonner des lignes selon leur valeur lexicale, numérique ou celle d'un champ choisi.
Trier des lignes complètes
Avec animals.txt :
dog
cow
cat
elephant
bird
$ sort animals.txt
bird
cat
cow
dog
elephant
L'ordre dépend de la locale, qui influe sur la casse, les accents et la ponctuation. Pour une collation reproductible par octets :
$ LC_ALL=C sort animals.txt
Que fait sort animals.txt sans option de clé ou numérique ?
Inverser le résultat
$ sort -r animals.txt
elephant
dog
cow
cat
bird
Quelle commande trie animals.txt dans l'ordre inverse ?
Comparer des nombres
L'ordre lexical place normalement 10 avant 2. Utilisez -n :
$ printf '10\n2\n30\n' | sort -n
2
10
30
sort -nr scores.txt combine comparaison numérique et ordre décroissant.
Quelle commande trie les lignes numériques de scores.txt de la plus grande à la plus petite ?
Trier selon un champ
-k START[,END] choisit une clé. Les champs sont séparés par des blancs, sauf délimiteur défini avec -t :
$ printf 'alice:30\nbob:8\ncarol:20\n' | sort -t ':' -k 2,2n
bob:8
carol:20
alice:30
-t ':' définit les champs, -k 2,2 borne la clé au deuxième et n la compare numériquement. Sans ,2, une clé commençant au champ 2 continue normalement jusqu'à la fin.
Quelle commande trie users.txt numériquement selon son seul deuxième champ séparé par : ?
Supprimer les doublons et enregistrer la sortie
-u ne produit qu'une ligne pour chaque clé de comparaison égale :
$ sort -u names.txt
Cette forme trie et supprime les doublons selon les règles choisies. Pour supprimer seulement des doublons adjacents d'une entrée déjà triée, utilisez uniq.
$ sort names.txt > names-sorted.txt
N'exécutez pas sort names.txt > names.txt : le shell tronquerait l'entrée. GNU sort peut gérer le même chemin avec :
$ sort -o names.txt names.txt
Conservez une sauvegarde ou vérifiez un résultat séparé si les données comptent.
Sous GNU/Linux, quelle commande demande à sort de réécrire sûrement names.txt sans troncature préalable du shell ?
Pour vous exercer :
- Commande Linux sort : trier du texte - Triez des lignes dans différents ordres.
- Comptage et tri de mots - Analysez des fréquences et ordonnez les résultats.
Leçon terminée
Vous avez terminé sort
Vous savez choisir les règles de comparaison et la destination d'un texte trié.
Trier des lignes sous une locale explicite si nécessaire.
Inverser avec
-r.Comparer des nombres avec
-n.Borner une clé avec
-tet-k.Supprimer les doublons ou enregistrer sans tronquer l'entrée.
Conservez votre progression
Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.
Créer un compte gratuit