GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Commande de tri sous Linux avec des exemples

La commande sort est l'un des utilitaires du noyau GNU qui est utilisé pour trier le contenu dans un ordre particulier. Il peut trier le contenu de plusieurs manières, notamment par ordre alphabétique, numérique, par mois, dans l'ordre inverse, etc. Voici quelques points clés que vous devez garder à l'esprit concernant la commande de tri :

  • Les chiffres apparaissent en premier avant les lettres
  • Pour chaque lettre, les minuscules sont triées en premier.
  • Par défaut, les espaces sont utilisés comme séparateur de champs. D'autres séparateurs de champs peuvent également être utilisés.

Dans cet article, nous vous montrerons l'utilisation de base et certaines options courantes de la commande sort sous Linux. Nous testerons toutes les commandes sur Ubuntu 20.04 LTS . Cependant, vous pouvez appliquer les mêmes commandes sur d'autres distributions Linux.

La syntaxe de la commande de tri est la suivante :

$ sort [OPTION]... [FILE]...

Utilisation de base de la commande de tri

L'utilisation de la commande de tri sans aucune option de ligne de commande trie le contenu d'un fichier spécifié par ordre alphabétique.

Ci-dessous se trouve notre sample1.txt fichier que nous utiliserons comme exemple.

Pour trier le contenu de sample1.txt fichier, la commande serait :

$ sort sample1.txt

Voici la sortie de la commande ci-dessus qui affiche le contenu trié par ordre alphabétique.

Si le fichier contient à la fois des alphabets et des nombres, la commande de tri triera les nombres avant les alphabets. Vous trouverez ci-dessous notre exemple de fichier contenant à la fois des chiffres et des alphabets :

Voici la sortie du fichier ci-dessus après le tri où vous pouvez voir que les nombres sont triés avant les alphabets.

Options de commande de tri

La commande de tri fournit de nombreuses options qui étendent son utilité. Voyons quelques-unes des options et comment les utiliser.

Trier dans l'ordre inverse

Pour trier le contenu du fichier dans l'ordre inverse, utilisez le -r option. Par exemple, ci-dessous se trouve le contenu de notre exemple de fichier que nous souhaitons trier par ordre alphabétique inverse.

Pour trier le contenu de ce fichier dans l'ordre inverse, utilisez le -r comme suit :

$ sort -r sample1.txt

Trier par ordre numérique

Pour trier les données numériquement, utilisez le -n option avec la commande de tri. Cette option est utile si votre fichier contient des nombres et que vous souhaitez les trier du plus petit au plus grand ou du plus grand au plus petit. Gardez à l'esprit que dans le tri par défaut, 113 serait considéré comme inférieur à 2.

Vous trouverez ci-dessous un exemple de tri par défaut de notre exemple de fichier. Gardez à l'esprit que dans le tri par défaut, le tri est effectué sur la base du premier numéro. Si le premier nombre est le même, alors il trie sur la base du deuxième nombre. Comme dans l'exemple ci-dessous, 113 est plus petit que 13 et 2.

Pour trier le contenu ci-dessus par ordre numérique (du plus petit au plus grand), utilisez le -n comme suit :

$ sort -n sample2.txt

Trier par mois

La commande de tri par défaut trie le contenu du fichier par ordre alphabétique. Si un fichier contient une liste de noms de mois, vous pouvez les trier par mois en utilisant le -M commande. Par exemple, ci-dessous se trouve notre exemple de fichier contenant les noms de mois.

Pour trier le contenu du fichier ci-dessus par mois, utilisez le -M comme suit :

$ sort -M sample3.txt

Trier sur la base du numéro de colonne

Par défaut, la commande de tri commence à trier le contenu sur la base du premier caractère de la première colonne.

Par exemple, ci-dessous se trouve notre exemple de fichier qui contient deux colonnes ; noms de fruits et leurs prix respectifs. Si nous utilisions le tri par défaut, il serait fait en fonction de la première colonne (contenant les noms de fruits).

Pour trier le contenu du fichier ci-dessus sur la base de la deuxième colonne (prix), nous devrons utiliser la commande -k comme suit :

$ sort -k2 -n sample1.txt

Où -k2 indique à la commande de tri de trier sur la deuxième colonne et -n est utilisé pour le tri numérique.

La commande ci-dessus triera le contenu en fonction de leurs prix (du plus bas au plus élevé).

Utiliser un séparateur de champ différent

Par défaut, la commande de tri utilise l'espace comme séparateur de champs. Pour utiliser un séparateur de champ différent autre que l'espace, utilisez le -t option. Ci-dessous se trouve notre exemple de fichier que nous souhaitons trier sur la base de la deuxième colonne (séparés par des virgules ).

La commande pour trier le fichier ci-dessus sur la base de la deuxième colonne serait :

$ sort -k2 -n -t “,” sample1.txt

Où -k2 indique à la commande de tri de trier sur la deuxième colonne, -n est utilisé pour le tri numérique et -t est utilisé pour spécifier le séparateur de champs.

Trier et supprimer les doublons

Le -u L'option avec la commande de tri supprime également les doublons tout en triant le contenu. Vous trouverez ci-dessous notre exemple de fichier contenant les valeurs en double.

Pour trier ce fichier par ordre alphabétique et supprimer également les valeurs en double, la commande serait :

$ sort -u sample1.txt

Ceci est la sortie du fichier trié avec les doublons supprimés.

Vérifier les entrées triées

Utilisation du -c option avec la commande sort, vous pouvez vérifier si un fichier a déjà été trié ou non. Si un fichier est trié plus tôt, vous ne verrez aucune sortie. Cependant, si le fichier n'est pas trié, il affichera les lignes qui ne sont pas dans l'ordre.

Voici notre exemple de fichier :

Pour vérifier si ce fichier est déjà trié ou non, utilisez le -c comme suit :

$ sort -c sample.txt

Comme notre fichier d'exemple a déjà été trié, aucune sortie n'est affichée.

Enregistrer la sortie triée dans un fichier

La commande Sort affiche uniquement la sortie triée sur Terminal ; ça ne le sauve pas. Pour enregistrer la sortie triée dans un fichier séparé, utilisez l'opérateur de redirection. Par exemple, pour enregistrer la sortie triée de file.txt dans un nouveau fichier nommé sortedfile.txt , utilisez la commande ci-dessous :

$ sort file.txt > sortedfile.txt

Commande de tri à l'aide de l'option Pipe

Vous pouvez trier la sortie d'autres commandes en les redirigeant vers la commande de tri. Par exemple, nous souhaitons trier numériquement une liste de fichiers/répertoires dans le répertoire d'accueil en fonction de leur taille. Nous pouvons le faire en utilisant le ls commande et canaliser sa sortie pour trier la commande comme suit.

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

Voici la sortie de la commande ci-dessus où vous pouvez voir que les fichiers sont triés selon leur taille.

Dans cet article, nous avons expliqué la syntaxe de base et l'utilisation de la commande sort sous Linux. Nous avons également expliqué certaines des options courantes pour étendre ses fonctionnalités. Pour afficher l'aide et en savoir plus sur les options de tri, visitez la page de manuel de tri ou tapez sort –help dans Terminal.


Ubuntu
  1. Commande source Linux avec exemples

  2. Commande Linux Tee avec exemples

  3. Commande principale Linux avec exemples

  4. Commande de tri sous Linux avec des exemples

  5. Commande JQ sous Linux avec exemples

Commande Tr sous Linux avec des exemples

15 Commande Linux ps avec exemples

Commande de CD Linux avec exemples

Commande murale sous Linux avec exemples

Commande IP Linux avec exemples

w Commande expliquée avec des exemples sous Linux