Recherche de site Web

14 exemples utiles de commande Linux « trier » – Partie 1


La commande « trier » est un programme Linux utilisé pour imprimer des lignes de fichiers texte d'entrée et concaténer tous les fichiers dans un ordre trié. La commande de tri prend un espace vide comme séparateur de champ et l'intégralité 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 imprime uniquement la sortie triée jusqu'à ce que vous redirigiez la sortie.

Cet article vise à donner un aperçu approfondi de la commande Linux « sort » avec 14 exemples pratiques utiles vous montrant comment utiliser la commande sort sous Linux.

1. Création d'un fichier texte avec un 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 commandes 'sort' dans notre répertoire de travail pour cette tâche : ' /home/$USER/Desktop/tecmint'.

L'option '-e' dans la commande ci-dessous permet l'interprétation de la barre oblique inverse 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 », examinons le contenu du fichier et comment il apparaît à l'aide de la commande cat suivante.

cat tecmint.txt

3. Tri du contenu du fichier

La commande « sort tecmint.txt » est utilisée pour réorganiser les lignes du fichier par ordre alphabétique croissant. S'il y a des lignes en double, elle conservera une copie de chaque ligne unique.

sort tecmint.txt

Remarque : La commande ci-dessus ne trie pas le contenu du fichier texte mais affiche uniquement la sortie triée sur le terminal.

4. Redirection de 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, puis redirige 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 séparé.

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

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

5. Trier le contenu des fichiers 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 organisera les lignes par ordre alphabétique décroissant et que la sortie triée sera ensuite redirigée vers un nouveau fichier nommé « reversesorted.txt »

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

6. Sauvegarde de la liste des fichiers et des répertoires

La commande suivante est utilisée pour répertorier le contenu du répertoire personnel de l'utilisateur (« /home/$USER ») dans une vue détaillée au format long à l'aide de la commande ls, puis elle redirige cette liste de répertoires vers un fichier texte nommé « lsl.txt » situé sur le bureau de l'utilisateur, plus précisément dans le répertoire « tecmint ».

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

Nous allons maintenant explorer des exemples de tri du contenu en fonction de champs autres que les caractères initiaux par défaut.

7. Tri du « contenu du fichier en fonction du deuxième champ »

La commande suivante permet de trier le contenu du fichier « lsl.txt » en fonction des valeurs du 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 comme du texte.

L'option '-k2' précise 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 », les critères de tri étant 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 du fichier « lsl.txt » en fonction des valeurs du neuvième champ de chaque ligne par ordre croissant. 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 répertorier le contenu du répertoire personnel de l'utilisateur dans un format de liste longue, puis rediriger la liste du répertoire vers 'sort -nk5', qui trie la liste en fonction des valeurs de la cinquième colonne, qui représente la taille des fichiers.

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

10. Suppression des lignes en double dans le fichier

La commande suivante trie les lignes du fichier « tecmint.txt » par ordre alphabétique croissant et supprime toutes les lignes en double à l'aide de l'option '-u', qui signifie « unique », et il 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'à indication contraire (-r).
  • Les lignes commençant par des lettres minuscules sont préférées dans la liste et se trouvent en haut jusqu'à indication contraire (-r).
  • Le contenu est répertorié en fonction de l'occurrence des alphabets dans le dictionnaire, sauf indication contraire (-r).
  • La commande de tri par défaut traite chaque ligne comme une chaîne, puis la trie en fonction de l'occurrence des alphabets dans le dictionnaire (numérique préféré ; voir règle – 1) jusqu'à indication contraire.

11. Redirection de la liste des répertoires vers un fichier

La commande suivante répertorie le contenu du répertoire personnel de l'utilisateur au format long, y compris les fichiers et répertoires cachés, puis redirige la liste des répertoires 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 le même.

12. Tri du contenu des fichiers

La commande suivante trie le contenu de deux fichiers texte, 'lsl.txt' et 'lsla.txt', par ordre alphabétique croissant, puis combine et affiche le contenu trié dans le terminal.

sort lsl.txt lsla.txt

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

13. Suppression des lignes en double dans le fichier

La commande suivante fusionne et trie le contenu de deux fichiers texte, 'lsl.txt' et 'lsla.txt', par ordre alphabétique croissant tout en supprimant les lignes en double à l'aide de la commande Option '-u', 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 à l'aide d'un délimiteur personnalisé

La commande suivante combine les commandes 'ls' et 'sort' pour répertorier le contenu du répertoire personnel de l'utilisateur au format long, puis redirige la liste des répertoires vers le répertoire '< commandesort', qui trie la sortie en fonction de colonnes et de champs spécifiques.

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

Voici une répartition de la commande :

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

C'est tout pour le moment. Dans le prochain article, nous examinerons pour vous des exemples plus détaillés de la commande de tri.

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