GNU/Linux >> Tutoriels Linux >  >> Linux

10 exemples utiles de la commande Sort sous Linux

Commande de tri sous Linux

La commande de tri organise les lignes de texte de manière utile. Cet outil simple peut vous aider à trier rapidement les informations à partir de la ligne de commande.

Syntaxe

sort [options] <filename>

Vous devriez noter quelques chose :

  • Lorsque vous utilisez le tri sans aucune option, les règles par défaut sont appliquées. Il est utile de comprendre les règles par défaut pour éviter des résultats inattendus.
  • Lorsque vous utilisez le tri, vos données d'origine sont en sécurité. Les résultats de votre saisie s'affichent uniquement sur la ligne de commande. Cependant, vous pouvez spécifier la sortie dans un fichier séparé si vous le souhaitez. Plus d'informations à ce sujet plus tard.
  • Le tri a été initialement conçu pour être utilisé avec des caractères ASCII. Je n'ai pas testé cela, mais il est possible que différents encodages produisent des résultats inattendus.

Les règles par défaut dans la commande de tri

Ce sont les règles par défaut lors de l'utilisation du tri. Les premiers exemples permettront de clarifier la manière dont ces priorités sont gérées. Ensuite, nous examinerons les options spécialisées.

  • chiffres> lettres
  • minuscule> majuscule

Exemples de la commande de tri

Laissez-moi vous montrer quelques exemples de commande de tri que vous pouvez utiliser dans diverses situations.

1. Trier par ordre alphabétique

La commande de tri par défaut facilite l'affichage des informations par ordre alphabétique. Aucune option n'est nécessaire et même avec des entrées à casse mixte, le tri de A à Z fonctionne comme prévu.

Je vais utiliser un exemple de fichier texte nommé filename.txt et si vous affichez le contenu du fichier, voici ce que vous verrez :

MX Linux
Manjaro
Mint
elementary
Ubuntu

Maintenant, si vous utilisez la commande sort dessus :

sort filename.txt

Voici la sortie triée par ordre alphabétique :

elementary
Manjaro
Mint
MX Linux
Ubuntu

2. Trier sur valeur numérique [option -n]

Prenons la même liste que nous avons utilisée pour l'exemple précédent et trions par ordre numérique. Au cas où vous vous poseriez la question, la liste reflète les distributions Linux les plus populaires (juillet 2019) selon distrowatch.com.

Je vais modifier le contenu du fichier afin que les éléments soient numérotés, mais dans le désordre comme indiqué ci-dessous.

1. MX Linux
4. elementary
2. Manjaro
5. Ubuntu
3. Mint
sort filename.txt

Après tri, le résultat est :

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu

Ça a l'air bien, non ? Pouvez-vous compter sur cette méthode pour organiser vos données avec précision ? Probablement pas. Regardons un autre exemple pour découvrir pourquoi.

Voici mon nouvel exemple de texte :

1
5
10
3
5
2
60
23
432
21

Maintenant, si j'utilise la commande sort sans aucune option, voici ce que j'obtiens :

[email protected]:~$ sort order.txt
1
10
2
21
23
3
432
5
5
60

REMARQUE :Les nombres sont triés uniquement en fonction de leurs premiers caractères.

Lorsque vous ajoutez le -n option, la valeur numérique de la chaîne est maintenant évaluée plutôt que seulement le premier caractère. Maintenant, vous pouvez voir ci-dessous que notre liste est correctement triée.

sort order.txt -n

Vous aurez maintenant la sortie correctement triée :

1
2
3
5
5
10
21
23
60
432

3. Trier dans l'ordre inverse [option -r]

Pour celui-ci, je vais utiliser à nouveau notre liste de distribution. La fonction inverse est explicite. Cela inversera l'ordre du contenu que vous avez dans votre fichier.

sort filename.txt -r

Et ici vous avez le texte de sortie dans l'ordre inverse :

5. Ubuntu
4. elementary
3. Mint
2. Manjaro
1. MX Linux

4. Tri aléatoire [option -R]

Si vous avez écrasé accidentellement votre touche Maj en essayant la fonction inverse, vous pourriez avoir obtenu des résultats étranges. -R réorganise la sortie dans un ordre aléatoire.

sort filename.txt -R

Voici la sortie triée au hasard :

4. elementary
1. MX Linux
2. Manjaro
5. Ubuntu
3. Mint

5. Trier par mois [option -M]

Le tri a également une fonctionnalité intégrée pour organiser par mois. Il reconnaît plusieurs formats basés sur des informations spécifiques aux paramètres régionaux. J'ai essayé de démontrer quelques tests uniques pour montrer qu'il sera organisé par date-jour, mais pas par année. Les abréviations des mois s'affichent avant les noms complets.

Voici l'exemple de fichier texte dans cet exemple :

March
Feb
February
April
August
July
June
November
October
December
May
September
1
4
3
6
01/05/19
01/10/19
02/06/18

Trions-le par mois en utilisant l'option -M :

sort filename.txt -M

Voici la sortie que vous verrez :

01/05/19
01/10/19
02/06/18
1
3
4
6
Jan
Feb
February
March
April
May
June
July
August
September
October
November
December

6. Enregistrez les résultats triés dans un autre fichier

Comme je l'ai mentionné précédemment, le tri ne modifie pas le fichier d'origine par défaut. Si vous avez besoin d'enregistrer le contenu trié, vous pouvez le faire.

Pour cet exemple, j'ai créé un nouveau fichier dans lequel je souhaite que les informations triées soient imprimées et enregistrées sous le nom filename_sorted.txt.

Attention : Si vous essayez de diriger vos données triées vers le même fichier, cela effacera le contenu de votre fichier.

sort filename.txt -n > filename_sorted.txt

Si vous utilisez la commande cat sur le fichier de sortie, ce sera son contenu :

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu

7. Trier une colonne spécifique [option -k]

Si vous avez une table dans votre fichier, vous pouvez utiliser le -k option pour spécifier la colonne à trier. J'ai ajouté des nombres arbitraires dans une troisième colonne et j'afficherai la sortie triée par chaque colonne. J'ai inclus plusieurs exemples pour montrer la variété de sorties possibles. Les options sont ajoutées après le numéro de colonne.

1. MX Linux 100
2. Manjaro 400
3. Mint 300
4. elementary 500
5. Ubuntu 200
sort filename.txt -k 2

Cela triera le texte de la deuxième colonne par ordre alphabétique :

4. elementary 500
2. Manjaro 400
3. Mint 300
1. MX Linux 100
5. Ubuntu 200
sort filename.txt -k 3n

Cela triera le texte par les chiffres de la troisième colonne.

1. MX Linux 100
5. Ubuntu 200
3. Mint 300
2. Manjaro 400
4. elementary 500
sort filename.txt -k 3nr

Identique à la commande ci-dessus, sauf que l'ordre de tri a été inversé.

4. elementary 500
2. Manjaro 400
3. Mint 300
5. Ubuntu 200
1. MX Linux 100

8. Trier et supprimer les doublons [option -u]

Si vous avez un fichier avec des doublons potentiels, le -u option vous facilitera la vie. N'oubliez pas que le tri n'apportera pas de modifications à votre fichier de données d'origine. J'ai choisi de créer un nouveau fichier avec uniquement les éléments qui sont des doublons. Ci-dessous, vous verrez l'entrée, puis le contenu de chaque fichier après l'exécution de la commande.

1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
1. MX Linux
2. Manjaro
3. Mint
4. elementary
5. Ubuntu
sort filename.txt -u > filename_duplicates.txt

Voici les fichiers de sortie triés et sans doublons.

1. MX Linux 
2. Manjaro 
3. Mint 
4. elementary 
5. Ubuntu 

9. Ignorer la casse lors du tri [option -f]

De nombreuses distributions modernes exécutant sort implémenteront ignorer la casse par défaut. Si ce n'est pas le cas, ajoutez le -f l'option produira les résultats attendus.

sort filename.txt -f

Voici la sortie où les cas sont ignorés par la commande de tri :

alpha
alPHa
Alpha
ALpha
beta
Beta
BEta
BETA

10. Trier par valeurs numériques humaines [option -h]

Cette option permet la comparaison de valeurs alphanumériques comme 1k (c'est-à-dire 1000).

sort filename.txt -h

Voici la sortie triée :

10.0
100
1000.0
1k

J'espère que ce tutoriel vous a aidé à maîtriser l'utilisation de base de la commande sort sous Linux. La commande sort est souvent utilisée en conjugaison avec la commande uniq sous Linux pour trier de manière unique les fichiers texte.

Si vous avez une astuce de tri sympa, pourquoi ne pas la partager avec nous dans la section des commentaires ?


Linux
  1. 12 exemples de commandes Wget utiles sous Linux

  2. Commande de tri sous Linux avec des exemples

  3. Commande ls sous Linux :17 exemples utiles expliqués

  4. 9 exemples utiles de la commande Split sous Linux

  5. sort Exemples de commandes sous Linux

Commande pwd sous Linux avec des exemples utiles

Commande SS sous Linux avec des exemples utiles

Commande de tri sous Linux avec des exemples

Exemples essentiels de la commande ps sous Linux

15 exemples super utiles de la commande Find sous Linux

12 exemples de commandes de date Linux utiles