GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo ordenar archivos en Linux usando el comando Ordenar

El comando Ordenar es útil para ordenar/ordenar líneas en archivos de texto. Puede ordenar los datos en un archivo de texto y mostrar el resultado en la pantalla, o redirigirlo a un archivo. En función de sus requisitos, ordenar proporciona varias opciones de línea de comandos para ordenar datos en un archivo de texto.

Sintaxis del comando de ordenación:

$ sort [-options]

Por ejemplo, aquí hay un archivo de prueba:

$ cat test
zzz
sss
qqq
aaa
BBB
ddd
AAA

Y, esto es lo que obtiene cuando se ejecuta el comando ordenar en este archivo sin ninguna opción. Ordena las líneas en el archivo de prueba y muestra la salida ordenada.

$ sort test
aaa
AAA
BBB
ddd
qqq
sss
zzz

1. Realizar ordenación numérica usando la opción -n

Si queremos ordenar por valor numérico, podemos usar -n o –clasificación numérica opción.

Cree el siguiente archivo de prueba para este ejemplo:

$ cat test
22 zzz
33 sss
11 qqq
77 aaa
55 BBB

El siguiente comando de ordenación ordena las líneas en el archivo de prueba según el valor numérico en la primera palabra de la línea y muestra la salida ordenada.

$ sort -n test
11 qqq
22 zzz
33 sss
55 BBB
77 aaa

2. Ordenar números legibles por humanos usando la opción -h

Si queremos ordenar números legibles por humanos (por ejemplo, 2K 1M 1G), entonces podemos usar -h o –human-numeric-sort opción.

Cree el siguiente archivo de prueba para este ejemplo:

$ cat test
2K
2G
1K
6T
1T
1G
2M

El siguiente comando de ordenación ordena números legibles por humanos (es decir, 1K =1 mil, 1M =1 millón, 1G =1 Giga, 1T =1 Tera) en el archivo de prueba y muestra la salida ordenada.

$ sort -h test
1K
2K
2M
1G
2G
1T
6T

3. Ordenar meses de un año usando la opción -M

Si queremos ordenar en el orden de los meses del año, entonces podemos usar -M o –mes-ordenar opción.

Cree el siguiente archivo de prueba para este ejemplo:

$ cat test
sept
aug
jan
oct
apr
feb
mar11

El siguiente comando de ordenación ordena las líneas en el archivo de prueba según el orden del mes. Tenga en cuenta que las líneas en el archivo deben contener al menos 3 caracteres del nombre del mes al comienzo de la línea (por ejemplo, enero, febrero, marzo). Si damos ja para enero o au para agosto, entonces el comando sort no lo considerará como el nombre del mes.

$ sort -M test
jan
feb
mar11
apr
aug
sept
oct

4. Compruebe si el contenido ya está ordenado con la opción -c

Si queremos verificar que los datos en el archivo de texto estén ordenados o no, podemos usar -c o –check, –check=diagnose-first opción.

Cree el siguiente archivo de prueba para este ejemplo:

$ cat test
2
5
1
6

El siguiente comando de ordenación comprueba si los datos del archivo de texto están ordenados o no. Si no es así, muestra la primera aparición con el número de línea y el valor desordenado.

$ sort -c test
sort: test:3: disorder: 1

5. Invierta la salida y verifique la singularidad usando las opciones -r y -u

Si queremos obtener la salida ordenada en orden inverso, podemos usar -r o –reversa opción. Si el archivo contiene líneas duplicadas, entonces para obtener líneas únicas en la salida ordenada, se puede usar la opción "-u".

Cree el siguiente archivo de prueba para este ejemplo:

$ cat test
5
2
2
1
4
4

El siguiente comando ordenar ordena las líneas en el archivo de prueba en orden inverso y muestra la salida ordenada.

$ sort -r test
5
4
4
2
2
1

El siguiente comando ordenar ordena las líneas en el archivo de prueba en orden inverso y elimina las líneas duplicadas de la salida ordenada.

$ sort -r -u test
5
4
2
1

6. Ordene selectivamente el contenido, personalice el delimitador, escriba la salida en un archivo usando las opciones -k, -t, -o

Si queremos ordenar por columna o posición de palabra en líneas de archivo de texto, entonces se puede usar la opción “-k”. Si cada palabra en cada línea del archivo está separada por un delimitador excepto 'espacio', entonces podemos especificar el delimitador usando la opción "-t". Podemos obtener la salida ordenada en cualquier archivo de salida especificado (usando la opción "-o") en lugar de mostrar la salida en la salida estándar.

Cree el siguiente archivo de prueba para este ejemplo:

$ cat test
aa aa zz
aa aa ff
aa aa tt
aa aa kk

El siguiente comando de ordenación ordena las líneas en el archivo de prueba en la tercera palabra de cada línea y muestra la salida ordenada.

$ sort -k3 test
aa aa ff
aa aa kk
aa aa tt
aa aa zz
$ cat test
aa|5a|zz
aa|2a|ff
aa|1a|tt
aa|3a|kk

Aquí, se utilizan varias opciones en conjunto. En el archivo de prueba, las palabras de cada línea están separadas por el delimitador '|'. Ordena las líneas en el archivo de prueba en la segunda palabra de cada línea en función del valor numérico y almacena la salida ordenada en el archivo de salida especificado.

$ sort -n -t'|' -k2 test -o outfile

El contenido del archivo de salida se muestra a continuación.

$ cat outfile
aa|1a|tt
aa|2a|ff
aa|3a|kk
aa|5a|zz


Linux
  1. Cómo cambiar el nombre de los archivos en Linux

  2. Cómo hacer una comparación línea por línea de archivos en Linux usando el comando diff - Parte II

  3. Cómo hacer una comparación línea por línea de archivos en Linux usando el comando diff

  4. Cómo transferir archivos de forma segura usando el comando SCP en Linux

  5. Cómo crear archivos dispersos en Linux usando el comando 'dd'

Cómo probar la velocidad de Internet usando la línea de comandos en Linux

Cómo cambiar el nombre de los archivos usando la línea de comandos en Linux

Cómo ordenar archivos en Linux (GUI y Shell)

Cómo copiar archivos en Linux usando el comando CP

Cómo contar archivos en el directorio en Linux

Cómo descargar archivos en Rocky Linux 8 en la línea de comandos usando wget