Dans notre dernier article, nous avons couvert divers exemples de la commande ‘sort‘. Si vous l’avez manqué, vous pouvez vous rattraper en suivant le lien ci-dessous. Dans ce post, nous continuerons là où nous nous étions arrêtés dans l’article précédent, pour couvrir les aspects restants de la commande. De cette manière, les deux articles ensemble serviront de guide complet pour la commande Linux ‘sort‘.
Avant de continuer, veuillez créer un fichier texte nommé ‘month.txt‘ et le remplir avec les données fournies ci-dessous.
echo -e "mar\ndec\noct\nsep\nfeb\naug" > month.txt cat month.txt
15. Tri du contenu du fichier par mois
La commande suivante trie le contenu du fichier » month.txt » dans l’ordre chronologique en fonction de l’abréviation ou du nom du mois en utilisant l’option '-M'
qui indique à la commande ‘sort‘ de traiter les données comme des dates et de les trier en conséquence.
sort -M month.txt
16. Tri de la sortie par taille de fichier en format lisible par l’homme
La commande suivante combine les commandes ‘ls‘ et ‘sort‘ pour effectuer deux tâches. Tout d’abord, elle liste le contenu du répertoire personnel de l’utilisateur en format long, puis elle envoie cette liste de répertoire à la commande ‘sort’ pour afficher les tailles de fichier dans un format lisible par l’homme, ce qui facilite l’identification des fichiers les plus grands et les plus petits dans le répertoire.
ls -l /home/$USER | sort -h -k5
17. Vérification de la cohérence des fichiers triés
Dans l’article précédent, nous avons généré deux fichiers texte : ‘sorted.txt‘ dans l’exemple numéro 4 et ‘lsl.txt‘ dans l’exemple numéro 6. Nous savons que ‘sorted.txt‘ est déjà trié, tandis que ‘lsl.txt‘ ne l’est pas.
Pour vérifier l’état de tri des deux fichiers, nous utiliserons la commande ‘sort‘, qui nous permettra de confirmer si ‘sorted.txt‘ reste dans le bon ordre et si ‘lsl.txt‘ nécessite un tri.
sort -c sorted.txt
Si cela renvoie 0, cela signifie que le fichier est trié et qu’il n’y a pas de conflit.
sort -c lsl.txt
18. Gestion des délimiteurs lorsque l’on n’utilise pas d’espaces dans le fichier
Si le délimiteur (séparateur) entre les mots est un espace, la commande ‘sort‘ interprète automatiquement tout ce qui suit un espace horizontal comme un nouveau mot. Mais que se passe-t-il lorsque le délimiteur n’est pas un espace?
Considérez un fichier texte, dont le contenu est séparé par autre chose que un espace tel que '|'
ou '\'
ou '+'
ou '.'
ou ...</code.
Créez un fichier texte où les contenus sont séparés par +
. Utilisez la commande cat pour vérifier le contenu du fichier.
echo -e "21+linux+server+production\n11+debian+RedHat+CentOS\n131+Apache+Mysql+PHP\n7+Shell Scripting+python+perl\n111+postfix+exim+sendmail" > delimiter.txt
$ cat delimiter.txt
Triez maintenant ce fichier en fonction du 1er champ qui est numérique.
sort -t '+' -nk1 delimiter.txt
Le second est basé sur le 4ème champ qui n’est pas numérique.
Si le délimiteur est Tab, vous pouvez utiliser $'\t'
à la place de '+'
, comme indiqué dans l’exemple ci-dessus.
19. Tri aléatoire de la sortie par taille de fichier
Triez la sortie de la commande ls -l pour votre répertoire personnel en fonction de la cinquième colonne, qui représente la ‘quantité de données’, dans un ordre aléatoire.
ls -l /home/avi/ | sort -k5 -R
Chaque fois que vous exécutez le script ci-dessus, vous êtes susceptible d’obtenir un résultat différent car le résultat est généré de manière aléatoire.
Comme cela ressort clairement de Règle numéro – 2 de l’article précédent, la commande sort donne la priorité aux lignes commençant par des caractères minuscules plutôt qu’en majuscules. Vérifiez également exemple 3 dans l’article précédent, où la chaîne ‘laptop‘ apparaît avant la chaîne ‘LAPTOP‘.
20. Ignorer les préférences de tri par défaut
Comment ignorer les préférences de tri par défaut ? Avant de pouvoir ignorer les préférences de tri par défaut, nous devons exporter la variable d’environnement 'LC_ALL'
à 'C'
.
Pour ce faire, exécutez le code ci-dessous dans votre invite de commande.
export LC_ALL=C
Et puis triez le fichier texte ‘tecmint.txt‘ en ignorant les préférences de tri par défaut.
$ sort tecmint.txt
N’oubliez pas de comparer la sortie avec celle que vous avez obtenue dans exemple 3 et vous pouvez également utiliser l’option ‘-f
‘ alias ‘--ignore-case
‘ pour obtenir une sortie beaucoup plus organisée.
$ sort -f tecmint.txt
21. Combinaison de Deux Fichiers d’Entrée en une Opération Unique
Et si on exécutait ‘trier‘ sur deux fichiers d’entrée et qu’on les fusionnait en une seule fois?
Créons deux fichiers texte, nommés ‘file1.txt‘ et ‘file2.txt‘, et remplissons-les avec des données. Dans ‘file1.txt‘, nous ajouterons des nombres comme indiqué ci-dessous. Nous utiliserons également la commande cat pour inspecter le contenu du fichier
echo -e “5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable” > file1.txt cat file1.txt
Et remplissons le deuxième fichier ‘file2.txt‘ avec des données également.
echo -e “3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora” > file2.txt cat file2.txt
Maintenant, trions et fusionnons la sortie des deux fichiers.
join <(sort -n file1.txt) <(sort file2.txt)
Conclusion
En conclusion, cet article a exploré divers aspects de la commande ‘trier‘ dans Linux. Nous avons commencé par un tri basique par ordre alphabétique, avons abordé le tri numérique et basé sur les dates, et avons même évoqué les délimiteurs personnalisés. Nous avons également appris comment outrepasser les préférences de tri par défaut pour répondre à nos besoins.
De plus, nous avons discuté des techniques pour vérifier si un fichier est déjà trié et pour combiner les opérations de ‘trier‘ pour plusieurs fichiers d’entrée. Avec les connaissances acquises ici, vous disposez d’un outil puissant pour trier et organiser efficacement des données dans un environnement Linux.
Nous espérons que cet article a été instructif et utile pour vos activités en ligne de commande. Continuez à explorer, à apprendre et à maîtriser l’art du ‘trier‘ pour améliorer vos compétences Linux.
Source:
https://www.tecmint.com/linux-sort-command-examples/