Ordonnez vos sorties avec sort sous Linux

I. Présentation

La manipulation des fichiers et des sorties de commande sous Linux peut rapidement devenir un art et être d'une efficacité extraordinaire lorsque l'on connait les bons outils et les bonnes commandes. Aujourd'hui nous allons voir d'un peu plus près la commande "sort" native à la plupart des systèmes Linux (il me semble, un apt-get install sort ou yum install sort devrait régler le problème sinon ;)).

Cette commande, comme son nom l'indiquera au bilingue anglais permet d'ordonner, c'est à dire de ranger dans un ordre donné, une sortie. Par sortie on peut comprendre un fichier que l'on aura donné (cat monfichier.txt donnera en sortie le contenu de monfichier.txt) ou le résultat d'une commande qui est plus simplement ce qu'elle affiche après son exécution.

La commande sort a de pratique dans l'environnement de ligne de commande Linux qu'elle est construite pour gérer un grand nombre de fonction de tri. On peut par exemple trier par ordre numérique, ordre alphabétique, par ordre de grandeur (Ko, Mo ,Go) ou alors dans l'ordre inverse. Voyons quelques exemples d'utilisation.

II. Utiliser la commande sort pour donner un ordre à vos outputs

J'ai créé un fichier texte contenant différents prénoms dans le désordre alphabétique, voici à quoi il ressemble :

Commande_Sort_01

Je vais maintenant utiliser sort pour trier ces prénoms dans l'ordre alphabétique. J'effectue mon tri sur l'affichage du contenu d'un fichier mais cela marcherait de la même façon pour la sortie d'une autre commande que "cat" :

cat fichier.txt | sort -d

Commande_Sort_02

On se retrouve donc avec le contenu du fichier trié. Attention, il s'agit là d'une sortie simple, pour mettre cette sortie dans un fichier (et avoir le même contenu trié dans un fichier), redirigez cette sortie simple dans un second fichier, par exemple :

cat prenom.txt | sort -d > prenom_tries.txt

 Note : La commande "sort" utilise par défaut l'option "-d", il n'est donc dans ce cas là pas obligatoire de la préciser.

La même chose dans l'ordre exacte mais inversé :

cat prenom.txt | sort -d -r

Commande_Sort_03

Cas contraire pour effectuer un mélange par exemple, j'ai créé le fichier ordonné suivant :

Commande_Sort_04

Je vais maintenant mélanger ces valeurs avec l'option "random" de sort qui permet de désordonner le tout :

cat chiffres.txt | sort -R

Commande_Sort_05

Un autre cas plus parlant est celui d'un fichier de logs d'un serveur web contenant des IP, après n'avoir récupéré que les IP via la commande "cut" par exemple, on se retrouve avec une liste d'IP que nous allons pouvoir ranger dans l'ordre (pour identifier des sous réseaux du LAN par exemple). Voici le fichier avant tri :

Commande_Sort_06

Puis après en utilisant la commande suivante :

cat ips.txt | sort -n

Commande_Sort_07

Une autre utilisation intéressante est le tri par taille, sort sait directement reconnaître qu'on lui donne des tailles et sait les trier à partir du moment où l'on précise l'option "-h" (pour humans format), exemple ici avec quelques tailles saisies à la main dans un fichier :

Commande_Sort_08

Voila ! Nous avons à peu près fait le tour de la commande, sort est une commande à avoir dans un coin de tête car elle est extrêmement pratique et simple d'utilisation.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.

Nombre de posts de cet auteur : 526.Voir tous les posts

2 thoughts on “Ordonnez vos sorties avec sort sous Linux

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.