Le sort
La commande est utilisée sous Linux pour imprimer la sortie d'un fichier dans un ordre donné. Cette commande traite vos données (le contenu du fichier ou la sortie de n'importe quelle commande) et les réorganise de la manière spécifiée, ce qui nous aide à lire les données efficacement. Il est très utile dans les cas où de grandes quantités d'informations sont disponibles et doivent être classées par ordre alphabétique ou numérique croissant ou décroissant.
Dans le tri alphabétique, la commande vérifie la première lettre de chaque ligne et déplace les lignes vers le haut ou vers le bas pour organiser chaque ligne par ordre alphabétique.
Dans le tri numérique, la commande vérifie les nombres sur chaque ligne et organise les lignes dans l'ordre croissant ou décroissant. Cette organisation affiche un nombre plus petit en haut de votre sortie. Il y a une très petite différence dans sort
et grep
commande. Le sort
La commande organise les données par ordre alphabétique ou numérique dans l'ordre croissant ou décroissant. Le grep
La commande affiche ou masque uniquement les informations requises que vous souhaitez.
En bref, sort
est une commande utile lorsque vous avez besoin de lire un gros fichier ou une liste qui n'est pas organisé correctement, et il est devenu difficile et long de lire ces fichiers. Pour résoudre ce problème, utilisez le sort
commande sous Linux pour organiser le contenu des fichiers ou des listes dans le format requis, ce qui peut aider à lire le contenu requis. Le sort
suppose que les données sont au format ASCII. Il existe quelques options utiles pour sort
ce qui peut modifier le comportement de la sortie. Certains des exemples sont donnés ci-dessous, ainsi que la syntaxe de la commande.
Syntaxe
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
Exemples
Dans le premier exemple, nous utilisons le sort
commande sans aucune option. Cela organise chaque ligne par ordre alphabétique en considérant la première lettre de chaque ligne. Remarque :Les lignes commençant par une lettre minuscule apparaissent avant les lignes commençant par une lettre majuscule. Donc b (minuscule) vient en première position, et B (majuscule) est en deuxième position.
$ cat test.txt
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Budhha
ChatrapatiShahuMaharaj
budhha
Ramaai
$ sort test.txt
budhha
Budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
Parfois, nous avons besoin de données dans l'ordre inverse, c'est-à-dire le contraire de l'ordre alphabétique. Ceci est accompli en utilisant le -r
option, comme indiqué ci-dessous :
$ sort test.txt
budhha
Budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
$ sort -r test.txt
Ramaai
MahatmaJyotibaPhule
Dr.B.R.Ambedkar
ChatrapatiShahuMaharaj
Budhha
budhha
Comme le tri des lettres, nous pouvons sort
numériquement aussi. Option -n
organise le numérique et inverse vos résultats en utilisant -r
option. Ci-dessous, en utilisant le -n
option, nous avons classé les nombres par ordre croissant. Par conséquent, le plus petit nombre est en haut et le plus grand est en bas. Nous pouvons également inverser la sortie en utilisant la même option ci-dessus -r
avec -n
et afficher le plus grand nombre en haut.
$ cat numeric.txt
14
04
34
1891
938
378
2356
$ sort -n numeric.txt
04
14
34
378
938
1891
2356
$ sort -nr numeric.txt
2356
1891
938
378
34
14
04
Vous pouvez sort
la colonne spécifique ainsi. Pour sort
une colonne particulière, utilisez le -k
option avec un numéro de colonne. Veuillez noter que dans l'exemple ci-dessous, nous n'avons utilisé que le -k
option pour sélectionner la colonne, donc le sort
La commande organise les données en considérant le premier chiffre de la deuxième colonne, et non le nombre entier de la deuxième colonne. Ainsi, la ligne contenant le chiffre 278 s'affiche avant la ligne contenant le chiffre 28 . Si nous utilisons le -n
option avec -k
(pour la sélection de colonne), les données s'affichent dans l'ordre croissant et la séquence ira du plus petit au plus grand nombre (ce qui a été couvert dans le deuxième exemple) :
$ cat file2.txt
Advika 1
Amit 30
Ajit 28
Abhi 278
Chirag 2
$ sort -k 2 file2.txt
Advika 1
Chirag 2
Abhi 278
Ajit 28
Amit 30
Ici, nous utilisons ensemble le numéro de colonne et le tri numérique. Dans l'exemple suivant, nous trions la cinquième colonne numériquement par ordre croissant.
$ ls -l
total 0
-rw-r--r-- 1 amwaghma hpcapp 42 Aug 20 19:30 file2.txt
-rw-r--r-- 1 amwaghma hpcapp 31 Aug 20 19:51 months.txt
-rw-r--r-- 1 amwaghma hpcapp 27 Aug 20 19:20 numeric.txt
-rw-r--r-- 1 amwaghma hpcapp 73 Aug 20 19:49 test.txt
$ ls -l | sort -nk 5
total 0
-rw-r--r-- 1 amwaghma hpcapp 27 Aug 20 19:20 numeric.txt
-rw-r--r-- 1 amwaghma hpcapp 31 Aug 20 19:51 months.txt
-rw-r--r-- 1 amwaghma hpcapp 42 Aug 20 19:30 file2.txt
-rw-r--r-- 1 amwaghma hpcapp 73 Aug 20 19:49 test.txt
Souvent, il y a de nombreuses entrées en double dans certaines lignes. Ceux-ci peuvent être éliminés en utilisant le -u
option. Dans l'exemple suivant, nous affichons le comportement du -u
option pour éliminer les doublons :
$ cat test.txt
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
budhha
Ramaai
Dr.B.R.Ambedkar
$ sort test.txt
budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
Dr.B.R.Ambedkar
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
$ sort -u test.txt
budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
Il existe une option intéressante par laquelle nous pouvons vérifier si le fichier est trié ou non. Utilisation du -c
l'option sort
La commande signale la première ligne déplacée. Si le fichier existant est déjà trié, alors sort
ne donne aucune sortie. Il vérifie chaque ligne l'une après l'autre, et lorsqu'il trouve une ligne non triée, il fournit un message. Dans l'exemple ci-dessous, le -c
option du sort
La commande aide à vérifier chaque ligne. Lors de la première tentative, il compare la première lettre des deux premières lignes, qu'il trouve correcte, c'est-à-dire la lettre D et la lettre M sont classés par ordre alphabétique. Lors de la deuxième tentative, il examine la première lettre de la troisième ligne avec la lettre initiale des deux premières lignes et constate que la troisième ligne n'est pas classée par ordre alphabétique. Par conséquent, il imprime la première ligne non concordante du fichier avec le numéro de ligne.
$ cat test.txt
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
ChatrapatiShahuMaharaj
budhha
Ramaai
$ sort test.txt
budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
$ sort -c test.txt
sort: test.txt:3: disorder: ChatrapatiShahuMaharaj
Tout comme les données ou les arrangements numériques, nous pouvons également organiser les mois dans le fichier. Faites cela en utilisant le -M
option et inverser l'ordre en utilisant le -r
option.
$ cat months.txt
February
December
January
July
$ sort -M months.txt
January
February
July
December
$ sort -Mr months.txt
December
July
February
January
Nous pouvons également trier plusieurs fichiers simultanément en utilisant les noms de fichiers respectifs comme arguments séparés par un espace. La sortie s'imprime l'une après l'autre. Ci-dessous, j'ai utilisé le -n
possibilité de trier le deuxième fichier numérique.
$ cat test.txt numeric.txt
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
ChatrapatiShahuMaharaj
budhha
Ramaai
14
04
34
1891
938
378
2356
$ sort test.txt -n numeric.txt
budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
04
14
34
378
938
1891
2356
Vous pouvez également rediriger la sortie triée vers un autre fichier en utilisant le -o
choix :
$ sort test.txt > sortfile
OR
$ sort -o sortfile test.txt
$ cat sortfile
budhha
Budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
Récapitulez
En utilisant les options ci-dessus, nous voyons que le tri peut être effectué avec le contenu du fichier ou la sortie de n'importe quelle commande. Il facilite l'organisation de grands ensembles de données par ordre croissant ou décroissant. Il y a tellement d'options que nous pouvons utiliser pour réorganiser les données de toutes les manières possibles. La chose la plus étonnante est que nous n'avons apporté aucune modification au fichier d'origine. Par conséquent, nos données sont en sécurité.
[ Téléchargement gratuit :Aide-mémoire sur les commandes avancées de Linux. ]