14 exemples utiles de la commande « sort » sous Linux – Partie 1

La commande ‘sort’ est un programme Linux utilisé pour imprimer les lignes d’entrée de fichiers texte et la concaténation de tous les fichiers dans l’ordre trié. La commande sort prend l’espace en blanc comme séparateur de champs et l’ensemble du fichier d’entrée comme clé de tri. Il est important de noter que la commande sort ne trie pas réellement les fichiers, mais n’imprime que la sortie triée jusqu’à ce que vous redirigez la sortie.

Cet article vise à donner un aperçu approfondi de la commande ‘sort’ Linux avec 14 exemples pratiques utiles montrant comment utiliser la commande sort dans Linux.

1. Création d’un Fichier Texte avec Contenu Spécifié

Tout d’abord, nous allons créer un fichier texte, nommé ‘tecmint.txt‘, qui sera utilisé pour exécuter les exemples de la commande ‘sort’ dans notre répertoire de travail pour cette tâche est ‘/home/$USER/Desktop/tecmint‘.

L’option ‘-e‘ dans la commande ci-dessous permet l’interprétation de l’antislash et /n indique à la commande echo d’écrire chaque chaîne sur une nouvelle ligne.

echo -e "computer\nmouse\nLAPTOP\ndata\nRedHat\nlaptop\ndebian\nlaptop" > tecmint.txt

2. Afficher le Contenu du Fichier

Avant de commencer avec la commande ‘sort’, jetons un coup d’œil au contenu du fichier et à la façon dont il apparaît en utilisant la commande cat suivante.3. Trier le Contenu du Fichier

cat tecmint.txt

3. Trier le contenu du fichier

La commande « sort tecmint.txt » est utilisée pour réorganiser les lignes dans le fichier par ordre alphabétique ascendant, si des lignes dupliquées sont présentes, une seule copie de chaque ligne unique sera conservée.

sort tecmint.txt

Note: The above command doesn’t sort the contents of the text file but only displays the sorted output on the terminal.

4. Rediriger la sortie triée vers un nouveau fichier

La commande suivante est utilisée pour trier les lignes du fichier texte « tecmint.txt » par ordre alphabétique et rediriger ensuite la sortie triée vers un nouveau fichier nommé « sorted.txt« , ce qui signifie que le fichier d’origine reste inchangé et que le contenu trié est stocké dans un fichier distinct.

Pour vérifier le contenu, utilisez la commande cat.

sort tecmint.txt > sorted.txt
cat sorted.txt

5. Trier le contenu du fichier dans l’ordre inverse

La commande suivante est utilisée pour trier les lignes du fichier texte « tecmint.txt » dans l’ordre inverse, ce qui signifie qu’elle réorganisera les lignes par ordre alphabétique décroissant et que la sortie triée est ensuite redirigée vers un nouveau fichier nommé « reversesorted.txt« 

sort -r tecmint.txt > reversesorted.txt
cat reversesorted.txt

6. Enregistrer la liste des fichiers et répertoires

La commande suivante est utilisée pour lister le contenu du répertoire personnel de l’utilisateur (« /home/$USER ») dans une vue détaillée, en format long, en utilisant la commande ls, puis redirige cette liste de répertoires vers un fichier texte nommé « lsl.txt » situé sur le bureau de l’utilisateur, spécifiquement dans le répertoire « tecmint ».

ls -l /home/$USER > /home/$USER/Desktop/tecmint/lsl.txt
cat lsl.txt

Maintenant, nous allons explorer des exemples de tri des contenus en fonction de champs autres que les caractères initiaux par défaut.

7. Tri ‘du contenu des fichiers en fonction du deuxième champ

La commande suivante est utilisée pour trier le contenu du fichier « lsl.txt » en fonction des valeurs dans le deuxième champ de chaque ligne. L’option '-n' indique un tri numérique, traitant le deuxième champ comme des nombres plutôt que du texte.

L’option '-k2' spécifie que nous voulons trier en fonction du deuxième champ. En exécutant cette commande, vous obtiendrez une liste triée des lignes dans « lsl.txt », avec comme critère de tri les valeurs numériques dans le deuxième champ de chaque ligne.

sort -nk2 lsl.txt

8. Tri du contenu du fichier en fonction du neuvième champ

La commande suivante est utilisée pour trier les lignes dans le fichier « lsl.txt » en fonction des valeurs dans le neuvième champ de chaque ligne dans l’ordre ascendant. L’option '-k9' spécifie que le tri doit être effectué en fonction du neuvième champ.

sort -k9 lsl.txt

9. Trier les fichiers par taille de fichier

La commande suivante combine les commandes ‘ls‘ et ‘sort‘ pour lister le contenu du répertoire personnel de l’utilisateur en format de liste détaillée, puis elle envoie la liste des répertoires à 'sort -nk5', qui trie la liste en fonction des valeurs de la cinquième colonne, qui représente les tailles des fichiers.

ls -l /home/$USER | sort -nk5

10. Suppression des lignes en double dans un fichier

La commande suivante trie les lignes du fichier  » tecmint.txt » par ordre alphabétique croissant et supprime les lignes en double en utilisant l’option '-u', qui signifie  » unique« , et elle garantit que les lignes uniques sont conservées dans la sortie triée.

$ cat tecmint.txt
$ sort -u tecmint.txt

Règles jusqu’à présent (ce que nous avons observé) :

  • Les lignes commençant par des chiffres sont préférées dans la liste et se trouvent en haut jusqu’à ce qu’elles soient spécifiées autrement (-r).
  • Les lignes commençant par des lettres minuscules sont préférées dans la liste et se trouvent en haut jusqu’à ce qu’elles soient spécifiées autrement (-r).
  • Le contenu est listé en fonction de l’occurrence des lettres dans le dictionnaire jusqu’à ce qu’il soit spécifié autrement (-r).
  • La commande sort traite par défaut chaque ligne comme une chaîne de caractères puis la trie en fonction de l’occurrence des lettres dans le dictionnaire (préférence numérique ; voir règle – 1) jusqu’à ce qu’elle soit spécifiée autrement.

11. Rediriger la liste des répertoires vers un fichier

La commande suivante liste le contenu du répertoire de l’utilisateur en mode long, y compris les fichiers et répertoires cachés, puis redirige l’affichage du répertoire vers un fichier texte nommé « lsla.txt » situé sur le bureau de l’utilisateur dans le répertoire « tecmint« .

ls -lA /home/$USER > /home/$USER/Desktop/tecmint/lsla.txt
cat lsla.txt

Ceux qui connaissent la commande ls comprennent que 'ls -lA' est équivalent à 'ls -l' plus les fichiers cachés. En conséquence, la majorité du contenu de ces deux commandes sera la même.

12. Trier le contenu des fichiers

La commande suivante trie le contenu de deux fichiers texte, ‘lsl.txt‘ et ‘lsla.txt‘, dans l’ordre alphabétique ascendant, puis combine et affiche le contenu trié dans le terminal.

$ sort lsl.txt lsla.txt

Remarquez la répétition des fichiers et dossiers.

13. Supprimer les lignes en double dans un fichier

La commande suivante fusionne et trie le contenu de deux fichiers texte, ‘lsl.txt‘ et ‘lsla.txt‘, dans l’ordre alphabétique ascendant tout en supprimant les lignes en double à l’aide de l’option '-u', ce qui garantit que les lignes uniques sont conservées dans la sortie triée.

$ sort -u lsl.txt lsla.txt

Notez que les doublons ont été omis de la sortie. De plus, vous pouvez enregistrer la sortie dans un nouveau fichier en la redirigeant.

14. Tri de la sortie par plusieurs champs en utilisant un délimiteur personnalisé

La commande suivante combine les commandes ‘ls‘ et ‘sort‘ pour lister le contenu du répertoire personnel de l’utilisateur en format long, puis elle transfère la liste des répertoires à la commande ‘sort‘, qui trie la sortie en fonction de colonnes et de champs spécifiques.

ls -l /home/$USER | sort -t "," -nk2,5 -k9

Voici une explication de la commande:

  • -t "," – spécifie qu’une virgule (",") est utilisée comme délimiteur de champ.
  • -nk2,5 – indique le tri par une valeur numérique dans les colonnes 2 à 5, qui représentent généralement les détails des permissions et de la propriété.
  • -k9 – trie davantage le résultat en fonction de la neuvième colonne, qui représente les tailles des fichiers.

C’est tout pour le moment. Dans l’article suivant, nous aborderons des exemples plus détaillés de la commande sort pour vous.

Continuez à partager, à commenter, à aimer et à nous aider à toucher un public plus large.

Source:
https://www.tecmint.com/sort-command-linux/