Comment trier des fichiers texte sous Linux à l’aide de la commande sort
Linux vous fournit plusieurs utilitaires que vous pouvez utiliser pour traiter des fichiers texte. Que vous souhaitiez supprimer des données en double ou trier le contenu d’un fichier, les outils de ligne de commande Linux ont tout ce dont vous avez besoin.
Cet article vous montrera la commande de tri et comment vous pouvez l’utiliser pour trier le contenu d’un fichier texte et l’organiser en conséquence.
Qu’est-ce que la commande sort ?
Comme mentionné ci-dessus, la commande sort aide un utilisateur à organiser le contenu d’un fichier texte dans un ordre particulier. Plusieurs options sont disponibles qui vous permettent de trier le fichier selon votre souhait. Il s’agit d’un programme Linux standard qui peut trier un fichier texte par ordre alphabétique, numérique, par colonne, etc., dans l’ordre normal ou inverse.
Les autres fonctionnalités de la commande incluent l’ignorance de la casse des caractères lors du tri, le tri d’un fichier par mois, l’ignorance des blancs dans un fichier et le tri aléatoire. En utilisant le tri, vous pouvez également vérifier si un fichier est déjà trié ou non.
Comment utiliser le tri sous Linux
Bien que sort contienne plusieurs méthodes et drapeaux que vous pouvez utiliser, il reste facile à apprendre.
Syntaxe de base
La syntaxe de base de l’utilisation de sort est :
…où nom de fichier est le chemin absolu ou relatif du fichier texte que vous souhaitez trier.
Par défaut, le tri organisera le contenu selon les critères suivants :
- Les lignes commençant par des caractères numériques ont la priorité la plus élevée.
- La commande triera les lignes par ordre alphabétique, après avoir trié les lignes commençant par des chiffres.
- Les lignes commençant par des caractères minuscules précèdent les lignes commençant par le même caractère en majuscule.
Prenons un fichier texte nommé fichiertexte.txt contenant les informations suivantes :
Pour trier le fichier en utilisant la configuration par défaut :
Sortir:
Créer un nouveau fichier de sortie
La commande sort ne modifie pas le contenu du fichier. Il envoie simplement le contenu trié à la sortie standard. Cependant, cela ne signifie pas que ce tri ne peut pas créer un nouveau fichier. Vous pouvez utiliser le -o flag pour spécifier le nom du fichier trié et sort créera automatiquement le fichier pour vous et ajoutera le contenu.
…où fichier trié est le nom du fichier de sortie et nom de fichier est le fichier d’origine qui doit être trié.
Trier fichiertexte.txt et créez un nouveau fichier de sortie pour le contenu :
Sortir:
Trier plusieurs fichiers
Pour trier plus d’un fichier à la fois, passez simplement les noms de fichiers séparés par le Espace personnage.
Sortir:
Notez que sort fusionnera la sortie des fichiers et les affichera ensemble dans le terminal.
Inverser le tri d’un fichier
Si vous souhaitez inverser la disposition du contenu, utilisez la -r flag avec la commande par défaut. le -r dans la commande suivante signifie Sens inverse .
Sortir:
Trier un fichier numériquement
Pour trier un fichier contenant des données numériques, utilisez la -n drapeau avec la commande. Par défaut, le tri organisera les données par ordre croissant.
Sortir:
Si vous souhaitez trier par ordre décroissant, inversez l’ordre à l’aide de la -r option avec la -n drapeau dans la commande.
Sortir:
Ignorer la casse des caractères lors du tri
Par défaut, le tri tient compte de la casse des caractères du contenu. Les lignes commençant par des caractères minuscules précèdent les lignes commençant par la version majuscule du même caractère. Par exemple, « c’est un garçon » précédera « c’est un garçon ».
Si vous voulez que le tri ignore la casse des caractères, spécifiez le -F ou la –ignore-cas drapeau comme suit :
Sortir:
Trier un fichier en fonction du mois
En utilisant le -M vous pouvez modifier l’ordre du contenu d’un fichier en fonction des noms de mois.
Sortir:
Ignorer les blancs en tête
Parfois, le fichier que vous souhaitez trier peut contenir des espaces ou des tabulations. Pour ignorer ces caractères blancs, utilisez le -b drapeau.
Sortir:
Trier un fichier selon une colonne
Si vous avez un fichier texte avec des données disposées dans des colonnes séparées, vous pouvez trier le fichier en fonction du contenu d’une colonne. Tout ce que vous avez à faire est de passer le numéro de colonne avec le -k drapeau.
Considérez un fichier texte contenant des informations sur le fichier avec différentes colonnes. Pour trier un fichier nommé sortie.txt selon la huitième colonne :
Sortir:
Tri de tuyaux avec d’autres commandes
Vous pouvez même utiliser sort avec d’autres commandes Linux pour modifier la disposition de la sortie. Par exemple, pour trier la sortie de la commande ls en fonction de la taille des fichiers :
Sortir:
Trier un fichier au hasard
Vous pouvez utiliser le -R flag si vous voulez randomiser l’ordre des lignes dans un fichier texte. Considérez le dossier fichiertexte.txt :
Sortir:
Trier les numéros de version dans un fichier
Si vous avez un fichier texte contenant des informations de version associées à un paquet, vous pouvez trier son contenu à l’aide de la -V ou –version-tri drapeau.
Sortir:
Vérifier si un fichier est trié
le -c flag vous aidera à identifier les fichiers qui sont déjà triés selon les options spécifiées. Si le contenu du fichier est correctement trié, le tri n’affichera aucune sortie.
Pour vérifier si le fichier fichiertexte.txt est trié :
Maintenant, trions le fichier et enregistrons sa sortie dans un nouveau fichier nommé trié.txt . En émettant la commande suivante :
Sortir:
Vous pouvez également spécifier divers drapeaux pour vérifier l’organisation du fichier en fonction de critères particuliers. Par exemple, pour vérifier si le fichier nombres.txt est trié par ordre décroissant :
Vous verrez une sortie indiquant que le fichier n’est pas trié correctement. Trions le fichier et vérifions si le nouveau fichier passe le test.
Sortir:
Trier le fichier et supprimer les doublons
Le fichier avec lequel vous travaillez peut contenir des données en double. Bien que vous puissiez utiliser la commande uniq pour supprimer ces informations du fichier, sort peut effectuer cette tâche pour vous. le -u ou –unique le drapeau est ce dont vous avez besoin.
Prenons un fichier nommé dupliquer.txt :
Pour trier le fichier et supprimer les données répétées :
Sortir:
Vous pouvez voir que lorsque vous utilisez le -u flag, sort n’affiche que des lignes distinctes et les organise selon les critères spécifiés.
Travailler avec des fichiers texte sous Linux
Bien que la puissance des éditeurs de texte en ligne de commande soit inégalée, vous pouvez toujours opter pour un éditeur graphique tel que gedit pour modifier facilement le contenu d’un fichier texte. En outre, c’est un meilleur choix pour ceux qui découvrent Linux et ne peuvent pas gérer le terminal.
La meilleure façon de commencer avec la ligne de commande, et Linux en général, est de pratiquer d’abord les commandes de base. Après avoir couvert les utilitaires fondamentaux, avancer progressivement vers des commandes plus complexes est probablement la meilleure approche.