GNU/Linux >> Tutoriels Linux >  >> Linux

Commande de tri Linux avec exemples

Présentation

Le sort La commande est un outil pour trier le contenu des fichiers et imprimer le résultat dans la sortie standard. Réorganiser le contenu d'un fichier par ordre numérique ou alphabétique et organiser les informations par ordre croissant ou décroissant améliore la lisibilité.

Dans ce didacticiel, vous apprendrez à utiliser le sort Linux commande et voir des exemples utiles.

Prérequis

  • Un système exécutant Linux.
  • Accès à un terminal.

Syntaxe de tri Linux

Le sort commande a la syntaxe suivante :

sort [options] filename

Exécution du sort commande sans [options] affiche le contenu du fichier et applique les règles de tri par défaut pour les paramètres régionaux actuels.

Les principales règles sont :

  • Lignes commençant par un chiffre aller avant les lignes commençant par une lettre , disposées en ascendant commande (1-10).
  • Les lignes commençant par des lettres sont triées par croissant ordre alphabétique (A-Z).

Par exemple, le fichier suivant comporte plusieurs lignes aléatoires :

Exécutez sort pour organiser le contenu du fichier de la manière par défaut :

L'exemple ci-dessus montre comment le sort commande organise les lignes par défaut lorsqu'aucune option n'est spécifiée.

Options de tri Linux

Spécifiez une option pour modifier le sort règles de tri des commandes. Les options les plus utilisées sont répertoriées dans le tableau ci-dessous :

Formulaire d'option courte Formulaire d'option longue Description
-b --ignore-leading-blanks Provoque un sort pour ignorer les blancs de tête.
-d --dictionary-order Provoque un sort pour ne prendre en compte que les blancs et les caractères alphanumériques.
-f --ignore-case Ignore la règle de tri par défaut de la casse et remplace toutes les lettres minuscules par des majuscules avant la comparaison.
/ --files0-from=F Lit l'entrée des fichiers spécifiés par NUL -noms terminés dans le F spécifié dossier. Si F est - , sort lit les noms depuis l'entrée standard.
-M --month-sort Trie les lignes en fonction des mois (Jan-Déc).
-h --human-numeric-sort Compare des nombres lisibles par l'homme (par exemple, 2K 1G).
-n --numeric-sort Compare les données en fonction des valeurs numériques de la chaîne.
-R --random-sort Trie les données selon un hachage aléatoire de clés mais regroupe les clés identiques.
/ --random-source=FILE Obtient des octets aléatoires du FILE spécifié .
-r --reverse Inverse les résultats de la comparaison.
/ --sort=WORD Trier les données selon le WORD spécifié :numérique général -g , humain-numérique -h , mois -M , numérique -n , aléatoire -R , version -V .
-c --check, --check=diagnose-first Vérifie si l'entrée est déjà triée mais ne la trie pas.
/ --debug Annote la partie de la ligne utilisée pour le tri.
-k --key=KEYDEF Trier les données en utilisant le KEYDEF spécifié , qui donne l'emplacement et le type de la clé.
-m --merge Provoque un sort pour fusionner les fichiers déjà triés.
-o --output=FILE Redirige la sortie vers FILE au lieu de l'imprimer en sortie standard.
-t --field-separator=SEP Utilise le SEP spécifié séparateur au lieu d'une transition non vide à vide.
-z --zero-terminated Le tri utilise NUL comme délimiteur de ligne au lieu du caractère de saut de ligne.
/ --help Affiche le fichier d'aide avec la liste complète des options et quitte.
/ --version Affiche la version du programme et quitte.

Exemples de tri Linux

Vous trouverez ci-dessous des exemples d'utilisation du sort commande pour organiser le contenu des fichiers de différentes manières.

Exemple 1 :Enregistrer la sortie dans un fichier

Le sort La commande affiche uniquement le contenu d'un fichier après l'avoir organisé, mais elle ne modifie pas le fichier. Cependant, le -o option permet d'enregistrer le sort sortie de la commande dans un fichier.

Par exemple, la commande suivante trie les données dans le default.txt fichier et enregistre la sortie dans le sorted.txt fichier :

sort -o sorted.txt default.txt

L'exécution de cat affiche le contenu du nouveau fichier.

Une autre façon d'enregistrer le sort la sortie de la commande est de rediriger la sortie vers un fichier :

sort default.txt > sorted.txt

Exemple 2 :Vérifier le tri dans le fichier

Spécifiez le -c option pour vérifier si le contenu d'un fichier a déjà été trié. Si le contenu est déjà trié, il n'y a pas de sortie du sort commande.

Cependant, lorsque sort trouve une ligne non triée, il affiche un message indiquant que la première ligne n'est pas à sa place.

Par exemple :

sort -c default.txt

La commande génère un message indiquant le numéro et le contenu de la première ligne non triée.

Exemple 3 :Trier plusieurs fichiers

Il existe deux manières de trier plusieurs fichiers :

1. Répertoriez les noms de fichiers sous forme d'arguments séparés par un espace.

Triez plusieurs fichiers simultanément en spécifiant les noms de fichiers respectifs comme arguments, séparés par des espaces. Le contenu des fichiers est réuni, trié et imprimé en sortie standard.

Par exemple :

sort default1.txt default2.txt

La commande concatène, trie et imprime le contenu des deux fichiers.

2. Dirigez le find sortie de la commande pour sort .

Une autre façon de trier plusieurs fichiers simultanément consiste à diriger la sortie de la commande find vers sort et utilisez le --files0-from= option dans le sort commande.

Spécifiez le -print0 option dans find pour terminer le nom du fichier par le NUL caractère et assurez-vous que le programme lit correctement la liste de fichiers.

Par exemple :

find -name "default?.txt" -print0 | sort --files0-from=-

L'exemple ci-dessus concatène et trie le default1.txt et default2.txt fichiers.

Exemple 4 :Trier par champs

Par défaut, sort compare le contenu de la ligne entière et décide comment le trier. Pour comparer selon un sous-ensemble de données, spécifiez les champs à comparer à l'aide de -k option.

Le -k option prend la syntaxe suivante :

-k [ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .Cend ] ][ Modifier ] ]
  • FStart . Le début de la ligne.
  • CStart . La première colonne du champ.
  • Fend . La fin de la ligne.
  • CEnd . La dernière colonne du champ.

La clé de tri comprend tous les caractères commençant par le champ spécifié par le FStart variable et la colonne spécifiée par le CStart variable. La clé se termine par le champ spécifié par FEnd et la colonne spécifiée par CEnd .

Ne pas spécifier Fend prend le dernier caractère de la ligne comme fin. Sans spécifier CEnd , le dernier caractère du FEnd champ est supposé.

S'il y a un espace entre les champs, sort les considère comme des champs distincts.

Par exemple, les lignes du fichier suivant contiennent trois champs :

Triez les données en fonction du deuxième champ en exécutant :

sort -k 2,2 school.txt

La commande trie les données en fonction du deuxième champ et ignore le premier champ.

Exemple 5 :Trier dans l'ordre inverse

Utilisez le -r possibilité de trier les données dans l'ordre inverse, c'est-à-dire dans l'ordre alphabétique inverse ou des nombres les plus élevés aux plus petits.

Par exemple, le fichier suivant est trié avec les règles de tri par défaut :

sort default.txt

Spécifier le -r l'option inverse l'ordre de tri :

sort -r default.txt

Exemple 6 :Supprimer les entrées en double

Le -u l'option permet de sort pour supprimer les entrées en double d'un fichier. Par exemple, le fichier suivant a plusieurs entrées en double :

Spécifier le -u l'option trie les données et supprime les lignes en double :

sort -u test.txt

Exemple 7 :Trier par mois

Spécifiez le -M possibilité d'organiser les données en fonction des mois répertoriés dans un fichier.

Pour illustrer le tri par mois, créez un fichier rempli par la sortie de la commande ls :

ls -l > month-sorting.txt

Trier les données de ls -l sortie par mois en exécutant la commande suivante :

sort -Mk6 month-sorting.txt

La commande trie le contenu du fichier en fonction du sixième champ contenant le mois de création du fichier .

Exemple 8 :Trier les données de manière aléatoire

Utilisez le -R possibilité d'organiser les données de manière aléatoire sans appliquer de critère de tri.

Par exemple, le fichier suivant contient plusieurs lignes triées numériquement :

Mélangez l'ordre des lignes avec la commande suivante :

sort -R ordered.txt

La sortie montre que les données sont maintenant triées de manière aléatoire.

Exemple 9 :Spécifier un délimiteur

sort sépare les champs sur une ligne en utilisant des espaces blancs (espaces ou tabulations) comme délimiteurs de champ. Spécifiez le -t option pour changer le délimiteur de champ en un caractère différent.

Par exemple, le fichier suivant contient plusieurs champs, y compris le nom d'une personne, la fonction et le lieu de résidence :

Trier le fichier par lieu de résidence sans changer le délimiteur ne fonctionne pas car certaines villes ont un espace au milieu de leur nom. L'espace fait sort interpréter le nom de la ville comme deux champs au lieu d'un.

Remplacez le délimiteur par une virgule (, ) pour trier correctement le contenu du fichier :

sort -t, -k4 school.txt

La modification du délimiteur produit la sortie souhaitée.

Exemple 10 :Trier une sortie de flux

Une autre façon de fournir une entrée au sort commande est d'utiliser le tube (| ) opérateur. Passage dans sort lui permet d'organiser la sortie d'une autre commande et, éventuellement, d'enregistrer les résultats dans un fichier.

L'exemple suivant montre comment diriger le ls sortie de la commande dans sort et organisez le contenu par taille de fichier :

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

Le -nk5 les options spécifient le tri numérique dans le cinquième champ .


Linux
  1. Commande Linux wc 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 de CD Linux avec exemples

Commande Linux watch avec exemples

Commande Wait sous Linux avec des exemples

Commande d'exportation Linux avec exemples

Commande de tri sous Linux avec des exemples

Commande IP Linux avec exemples