GNU/Linux >> Tutoriels Linux >  >> Linux

Boîte à outils Sysadmin :comment utiliser la commande sort pour traiter du texte sous Linux

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. ]


Linux
  1. Comment utiliser la commande Linux sed

  2. Comment utiliser la commande Linux grep

  3. Comment utiliser la commande history sous Linux

  4. Comment utiliser la commande id sous Linux

  5. Comment utiliser la commande "screen" sous Linux

Comment utiliser la commande uniq pour traiter des listes sous Linux

Comment utiliser la commande fd sur le système Linux

Comment utiliser la commande wget sous Linux ?

Comment utiliser la commande xargs sous Linux ?

Comment utiliser la commande RPM sous Linux

Comment utiliser la commande which sous Linux