accueil > Traitement et recherche de texte > sort

sort : Trier les fichiers texte

La commande `sort` est un utilitaire puissant utilisé pour trier le contenu des fichiers texte ligne par ligne. Elle permet de trier selon diverses critères tels que l'ordre alphabétique, numérique ou mensuel. En particulier, l'option `-n` permet de traiter les nombres comme des valeurs numériques réelles plutôt que comme des chaînes de caractères, ce qui est très utile pour les fichiers de log ou l'analyse de données.

Aperçu

La commande `sort` réarrange chaque ligne d'un fichier texte selon des critères spécifiés et l'envoie vers la sortie standard. Par défaut, elle trie par ordre alphabétique, mais diverses options permettent de trier selon des nombres, des mois, des champs spécifiques, etc. L'option `-n` est particulièrement essentielle pour s'assurer que les nombres sont triés correctement en tant que valeurs numériques réelles et non comme des chaînes de caractères.

Fonctionnalités principales

  • Tri ligne par ligne des fichiers texte
  • Support de divers critères de tri : alphabétique, numérique, mensuel, etc.
  • Fonctionnalités d'élimination des doublons et de tri par champ spécifique
  • Traitement de l'entrée standard et des fichiers

Options principales

La commande `sort` prend en charge une variété d'options pour offrir des fonctionnalités de tri puissantes. Voici les options les plus couramment utilisées.

Critères de tri

Sortie et autres

Commande générée :

Essayez de combiner les commandes.

Description:

`sort` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Voici des exemples concrets d'utilisation de la commande `sort` avec ses options principales.

Tri numérique de base

cat numbers.txt
# Exemple de sortie :
# 10
# 2
# 1
# 20

sort -n numbers.txt
# Sortie attendue :
# 1
# 2
# 10
# 20

Trie le contenu du fichier numbers.txt par ordre numérique croissant.

Tri numérique inversé

sort -nr numbers.txt
# Sortie attendue :
# 20
# 10
# 2
# 1

Trie le contenu du fichier numbers.txt par ordre numérique décroissant.

Tri par champ spécifique (numérique)

cat data.csv
# Exemple de sortie :
# apple,100,red
# banana,20,yellow
# cherry,50,red

sort -t, -nk2 data.csv
# Sortie attendue :
# banana,20,yellow
# cherry,50,red
# apple,100,red

Trie le fichier data.csv en utilisant le deuxième champ, séparé par des virgules (,), selon l'ordre numérique.

Tri numérique avec suppression des doublons

cat numbers_dup.txt
# Exemple de sortie :
# 10
# 2
# 1
# 20
# 2

sort -nu numbers_dup.txt
# Sortie attendue :
# 1
# 2
# 10
# 20

Trie le contenu du fichier numbers_dup.txt par ordre numérique et supprime les lignes dupliquées.

Sauvegarder le résultat du tri dans un fichier

sort -n input.txt -o sorted_numbers.txt
cat sorted_numbers.txt

Trie le contenu du fichier input.txt par ordre numérique, puis sauvegarde le résultat dans le fichier sorted_numbers.txt.

Conseils et précautions

La commande `sort` est très puissante, mais une utilisation incorrecte peut entraîner des résultats inattendus. Suivez ces conseils et précautions pour l'utiliser efficacement.

Conseils utiles

  • `sort` effectue par défaut un tri stable. Cela signifie que l'ordre relatif des enregistrements ayant des clés identiques est préservé.
  • Lors de l'utilisation de l'option `-k`, les numéros de champ commencent à 1.
  • Pour le tri de fichiers volumineux, spécifier un répertoire temporaire avec l'option `-T` peut améliorer les performances.
  • Elle est souvent utilisée avec des pipes (`|`) pour trier la sortie d'autres commandes (par exemple : `ls -l | sort -nk5`).

Précautions

  • Sans l'option `-n`, le tri des nombres peut être effectué par ordre alphabétique, où '10' précède '2', ce qui peut donner des résultats inattendus. Utilisez toujours `-n` pour le tri numérique.
  • L'ordre de tri peut varier en fonction des paramètres régionaux (locale). Pour des résultats cohérents, vous pouvez spécifier explicitement la locale, par exemple avec `LC_ALL=C sort`.

Commandes de la même catégorie