GNU/Linux >> Tutoriales Linux >  >> Linux

Caja de herramientas Sysadmin:cómo usar el comando ordenar para procesar texto en Linux

El sort El comando se usa en Linux para imprimir la salida de un archivo en un orden dado. Este comando procesa sus datos (el contenido del archivo o la salida de cualquier comando) y los reordena de la manera especificada, lo que nos ayuda a leer los datos de manera eficiente. Es muy útil en los casos en que se dispone de grandes cantidades de información y es necesario organizarla en orden alfabético o numérico ascendente o descendente.

En la clasificación alfabética, el comando verifica la primera letra de cada línea y mueve las líneas hacia arriba o hacia abajo para organizar cada línea en orden alfabético.

En la clasificación numérica, el comando verifica los números en cada línea y organiza las líneas en orden ascendente o descendente. Esta organización muestra un número más pequeño en la parte superior de su salida. Hay una diferencia muy pequeña en sort y grep dominio. El sort ordena los datos alfabética o numéricamente en orden ascendente o descendente. El grep El comando muestra u oculta solo la información requerida que desea.

En resumen, sort es un comando útil cuando necesita leer un archivo grande o una lista que no está organizada correctamente, y se vuelve difícil y requiere mucho tiempo para leer estos archivos. Para resolver este problema, utilice el sort Comando en Linux para organizar el contenido de archivos o listas en el formato requerido, lo que puede ayudar a leer el contenido requerido. El sort El comando asume que los datos están en formato ASCII. Hay algunas opciones útiles para sort que puede cambiar el comportamiento de la salida. Algunos de los ejemplos se dan a continuación, junto con la sintaxis del comando.

Sintaxis

sort [OPTION]... [FILE]...

sort [OPTION]... --files0-from=F

Ejemplos

En el primer ejemplo, usamos el sort Comando sin ninguna opción. Esto organiza cada línea en orden alfabético considerando la primera letra de cada línea. Nota:Las líneas que comienzan con una letra minúscula aparecen antes de las líneas que comienzan con una letra mayúscula. Por lo tanto b (minúsculas) viene en la primera posición, y B (mayúsculas) está en la segunda posición.

$ cat test.txt

Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Budhha
ChatrapatiShahuMaharaj
budhha
Ramaai
$ sort test.txt

budhha
Budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai

A veces, necesitamos datos en orden inverso, es decir, al contrario del orden alfabético. Esto se logra usando -r opción, como se ve a continuación:

$ 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

Al igual que la clasificación de letras, podemos sort numéricamente también. Opción -n organiza el numérico e invierte sus resultados usando -r opción. A continuación, usando -n opción, hemos dispuesto los números en orden ascendente. Por lo tanto, el número más pequeño está arriba y el número más grande está abajo. También podemos revertir la salida usando la misma opción anterior -r con -n y mostrar el número más grande en la parte superior.

$ 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

Puedes sort la columna específica también. Para sort una columna en particular, use -k opción junto con un número de columna. Tenga en cuenta que en el siguiente ejemplo, hemos usado solo -k opción para seleccionar la columna, por lo tanto, el sort El comando organiza los datos considerando el primer dígito de la segunda columna, no el número entero de la segunda columna. Por lo tanto, la línea que contiene el dígito 278 se muestra antes de la línea que contiene el dígito 28 . Si usamos el -n opción con -k (para la selección de columna), luego los datos se muestran en orden ascendente y la secuencia será del número más pequeño al más grande (que se ha tratado en el segundo ejemplo):

$ 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

Aquí, usamos el número de columna y la clasificación numérica juntos. En el siguiente ejemplo, clasificamos la quinta columna numéricamente en orden ascendente.

$ 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

A menudo, hay muchas entradas duplicadas en algunas líneas. Esos pueden ser eliminados usando el -u opción. En el siguiente ejemplo, mostramos el comportamiento de -u opción para eliminar las entradas duplicadas:

$ 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

Hay una opción interesante por la que podemos comprobar si el archivo está ordenado o no. Usando el -c opción, el sort El comando informa la primera línea fuera de lugar. Si el archivo existente ya está ordenado, entonces sort no da ninguna salida. Comprueba cada línea una tras otra, y cuando encuentra alguna línea no ordenada, proporciona un mensaje. En el siguiente ejemplo, -c opción del sort comando ayuda a comprobar cada línea. En el primer intento, compara la primera letra de las dos primeras líneas, que encuentra correctas, es decir, la letra D y letra M están ordenados alfabéticamente. En el segundo intento, examina la primera letra de la tercera línea con la letra inicial de las dos primeras líneas y descubre que la tercera línea no está ordenada alfabéticamente. Por lo tanto, imprime la primera línea del archivo que no coincide con el número de línea.

$ 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

Al igual que los arreglos numéricos o de datos, también podemos ordenar los meses en el archivo. Haga esto usando -M e invierte el orden usando -r opción.

$ cat months.txt

February
December
January
July
$ sort -M months.txt

January
February
July
December
$ sort -Mr months.txt

December
July
February
January

También podemos ordenar más de un archivo simultáneamente usando los respectivos nombres de archivo como argumentos separados por un espacio. La salida se imprime una tras otra. A continuación, he usado el -n opción para ordenar el segundo archivo numérico.

$ 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

También puede redirigir la salida ordenada a otro archivo usando -o opción:

$ sort test.txt > sortfile

OR

$ sort -o sortfile test.txt

$ cat sortfile

budhha
Budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai

Resumir

Usando las opciones anteriores, vemos que la clasificación se puede hacer con el contenido del archivo o la salida de cualquier comando. Facilita la organización de grandes conjuntos de datos en orden ascendente o descendente. Hay tantas opciones que podemos usar para reorganizar los datos de todas las formas posibles. Lo más sorprendente es que no hicimos ningún cambio en el archivo original. Por lo tanto, nuestros datos están seguros.

[ Descarga gratuita:hoja de referencia de comandos avanzados de Linux. ]


Linux
  1. Cómo usar el comando sed de Linux

  2. Cómo usar el comando grep de Linux

  3. Cómo usar el comando de historial en Linux

  4. Cómo usar el comando id en Linux

  5. Cómo usar el comando "pantalla" en Linux

Cómo usar el comando uniq para procesar listas en Linux

Cómo usar el comando fd en el sistema Linux

¿Cómo usar el comando wget en Linux?

¿Cómo usar el comando xargs en Linux?

Cómo usar el comando RPM en Linux

Cómo usar el comando which en Linux