Introduction
Dans ce laboratoire, vous allez explorer la polyvalence de la commande sort sous Linux, un outil puissant pour organiser et agencer des données textuelles. En tant qu'administrateur scolaire, vous utiliserez les différentes options de la commande sort pour gérer et analyser efficacement les informations relatives aux élèves. Cette expérience pratique vous aidera à comprendre comment manipuler des données dans des scénarios réels à l'aide des outils en ligne de commande Linux.
Tri alphabétique des noms d'élèves
Commençons par trier une liste de noms d'élèves par ordre alphabétique. Il s'agit d'une tâche courante lors de la création de listes de classe ou de l'organisation de dossiers scolaires.
Tout d'abord, visualisons le contenu de notre liste d'élèves :
cat ~/project/students.txt
Vous devriez voir une liste de noms d'élèves sans ordre particulier, semblable à celle-ci :
David Lee
Alice Johnson
Charlie Brown
Bob Smith
Eve Wilson
Utilisons maintenant la commande sort pour organiser ces noms par ordre alphabétique :
sort ~/project/students.txt
Cette commande affichera la liste triée des noms d'élèves sur votre écran. Le résultat devrait ressembler à ceci :
Alice Johnson
Bob Smith
Charlie Brown
David Lee
Eve Wilson
Par défaut, la commande sort trie les lignes par ordre alphabétique. Elle compare les lignes caractère par caractère, en commençant par le début de chaque ligne. C'est pourquoi "Alice" apparaît avant "Bob", et ainsi de suite.
Si vous ne voyez aucun résultat, ne vous inquiétez pas ! La commande a fonctionné, mais elle a simplement affiché le résultat dans le terminal. Si vous souhaitez enregistrer la liste triée dans un nouveau fichier, vous pouvez utiliser l'opérateur de redirection de sortie > comme ceci : sort ~/project/students.txt > ~/project/sorted_students.txt
Tri des élèves par âge
Ensuite, nous allons trier les élèves en fonction de leur âge. Cela peut s'avérer utile pour organiser les élèves dans des groupes ou des activités adaptés à leur âge.
Regardons d'abord nos données :
cat ~/project/student_ages.txt
Vous verrez une liste d'élèves avec leurs âges respectifs, comme ceci :
David Lee:21
Alice Johnson:18
Charlie Brown:19
Bob Smith:20
Eve Wilson:18
Pour trier cette liste par âge, nous utiliserons l'option -n, qui indique à sort de traiter les nombres comme des valeurs numériques et non comme des chaînes de caractères :
sort -n -t: -k2 ~/project/student_ages.txt
Analysons cette commande :
-n: Cette option demande àsortd'effectuer un tri numérique.-t:: Ceci spécifie que les champs sont séparés par des deux-points.-k2: Cela indique àsortd'utiliser le deuxième champ (l'âge) comme clé de tri.
Cela affichera la liste des élèves triés du plus jeune au plus âgé :
Alice Johnson:18
Eve Wilson:18
Charlie Brown:19
Bob Smith:20
David Lee:21
Sans l'option -n, sort traiterait les âges comme du texte, ce qui pourrait entraîner un ordre incorrect (comme 18, 19, 20, 21, 3). L'option -n garantit un classement numérique correct.
Tri décroissant des notes des élèves
À présent, trions les notes des élèves par ordre décroissant. Cette méthode est souvent utilisée pour classer les élèves ou identifier les meilleurs éléments.
Tout d'abord, visualisez la liste actuelle :
cat ~/project/student_grades.txt
Vous devriez voir quelque chose comme ceci :
David Lee:87
Alice Johnson:92
Charlie Brown:95
Bob Smith:88
Eve Wilson:91
Pour trier les notes de la plus élevée à la plus basse, nous utiliserons l'option -r pour l'ordre inverse (reverse), combinée à -n pour le tri numérique :
sort -nr -t: -k2 ~/project/student_grades.txt
Voici le rôle de chaque partie de la commande :
-n: Effectue un tri numérique.-r: Inverse l'ordre de tri (décroissant au lieu de croissant).-t:: Spécifie que les champs sont séparés par des deux-points.-k2: Utilise le deuxième champ (la note) comme clé de tri.
Cette commande affichera les notes des élèves de la plus haute à la plus basse :
Charlie Brown:95
Alice Johnson:92
Eve Wilson:91
Bob Smith:88
David Lee:87
L'option -r est particulièrement utile lorsque vous souhaitez voir les valeurs les plus élevées en premier, ce qui est fréquent dans de nombreux scénarios réels comme les classements, l'identification des performances de pointe ou la hiérarchisation des tâches.
Tri des dossiers d'élèves sur plusieurs champs
Dans cette étape, nous allons trier un dossier d'élève plus complexe comprenant le nom, l'âge et la note. C'est un cas de figure classique lors de la gestion de bases de données scolaires complètes.
Regardons d'abord nos données :
cat ~/project/student_records.txt
Chaque ligne contient le nom, l'âge et la note d'un élève, séparés par des deux-points :
David Lee:21:87
Alice Johnson:18:92
Charlie Brown:19:95
Bob Smith:20:88
Eve Wilson:18:91
Pour trier ce fichier par âge (deuxième champ), puis par note (troisième champ) si les âges sont identiques, nous utiliserons :
sort -t: -k2n -k3nr ~/project/student_records.txt
Voici la signification de chaque partie de la commande :
-t:spécifie que les champs sont séparés par des deux-points.-k2ntrie sur le deuxième champ (âge) de manière numérique.-k3nrtrie ensuite sur le troisième champ (note) de manière numérique et en ordre inverse.
Cela affichera les dossiers des élèves triés principalement par âge (croissant) et secondairement par note (décroissant) lorsque les âges sont les mêmes :
Alice Johnson:18:92
Eve Wilson:18:91
Charlie Brown:19:95
Bob Smith:20:88
David Lee:21:87
Ce type de tri multi-clés est extrêmement utile lorsque vous devez organiser des données selon plusieurs critères. Dans ce cas, nous regroupons les élèves par âge, et au sein de chaque groupe d'âge, nous les classons par note.
Suppression des entrées en double
Il arrive que les dossiers d'élèves contiennent des doublons, que ce soit à cause d'erreurs de saisie ou de soumissions multiples. Apprenons à supprimer ces doublons.
Tout d'abord, examinons un fichier contenant potentiellement des doublons :
cat ~/project/student_clubs.txt
Vous pourriez voir ceci :
Alice Johnson:Chess Club
Bob Smith:Debate Team
Charlie Brown:Chess Club
David Lee:Science Club
Eve Wilson:Debate Team
Alice Johnson:Chess Club
Bob Smith:Science Club
Pour trier cette liste et supprimer les doublons, nous utiliserons l'option -u (unique) :
sort -u ~/project/student_clubs.txt
Cette commande affichera une liste triée des adhésions uniques aux clubs :
Alice Johnson:Chess Club
Bob Smith:Debate Team
Bob Smith:Science Club
Charlie Brown:Chess Club
David Lee:Science Club
Eve Wilson:Debate Team
L'option -u indique à sort de ne conserver que la première occurrence d'une ligne identique. En d'autres termes, elle supprime les lignes en double après le tri. C'est particulièrement utile pour créer des listes d'entrées uniques ou pour identifier et éliminer les données redondantes.
Notez que "Bob Smith" apparaît deux fois car il appartient à deux clubs différents ; ces lignes ne sont pas considérées comme des doublons puisque l'intégralité de la ligne diffère.
Résumé
Dans ce laboratoire, vous avez appris à utiliser la commande sort pour organiser différents types de données scolaires. Vous avez exploré plusieurs options utiles :
- Tri alphabétique de base
- Tri numérique avec
-n - Tri inversé avec
-r - Tri sur plusieurs champs avec
-k - Utilisation de séparateurs de champs personnalisés avec
-t - Suppression des doublons avec
-u
D'autres options utiles de sort incluent :
-f: Ignorer la casse (majuscules/minuscules) lors du tri-b: Ignorer les espaces en début de ligne-c: Vérifier si l'entrée est déjà triée-o: Écrire le résultat dans un fichier plutôt que sur la sortie standard
Ces compétences seront précieuses pour gérer et analyser des données dans divers contextes professionnels, bien au-delà du cadre éducatif.



