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