Índice de contenidos
Introducción
En esta guía, le mostraré cómo ordenar los datos en archivos delimitados y desde la salida de otros comandos.
No le sorprenderá saber que el comando que utiliza para realizar esta tarea se llama «ordenar». Todos los interruptores principales del comando sort se proporcionarán en este .
Datos de la muestra
Los datos de un archivo pueden ser ordenados siempre y cuando estén delimitados de alguna manera.
Por ejemplo, tomemos la tabla de clasificación final de la Scottish Premier League del año pasado y almacenemos los datos en un archivo llamado «spl». Puede crear un archivo de datos de la siguiente manera con un club y los datos de ese club separados por comas en cada fila.
TeamGoals ScoredGoals AgainstPointsCeltic933186Aberdeen624871Hearts594065St Johnstone585556Motherwell476350Ross County556148Inverness54485852Dundee535748Partick415046Hamilton426343Kilmarnock416436Dundee United457028
Cómo ordenar datos en archivos
De esa tabla se desprende que el Celtic ganó la liga y el Dundee United quedó último. Si eres hincha de Dundee United, es posible que quieras sentirte mejor, y puedes hacerlo clasificando los goles marcados.
Para ello, ejecute el siguiente comando:
sort -k2 -t, spl
Esta vez el orden sería el siguiente:
- Partick
- Kilmarnock
- Hamilton
- Dundee United
- Motherwell
- Dundee
- Inverness
- Condado de Ross
- San Juan
- Corazones
- Aberdeen
- Celta
La razón por la que los resultados están en este orden es que la columna 2 es la columna de goles marcados y el orden va de menor a mayor.
El interruptor -k le permite elegir la columna por la que ordenar y el interruptor -t le permite elegir el delimitador.
Para estar muy contentos, los aficionados de Dundee United pueden ordenar por columna 4 utilizando el siguiente comando:
sort -k4 -t, spl
Ahora el Dundee United está arriba y el Celtic está abajo.
Por supuesto, esto haría muy infelices a los aficionados del Celtic y del Dundee. Para corregirlo, puede ordenar las cosas en orden inverso utilizando el siguiente interruptor:
sort -k4 -t, -r spl
Un conmutador bastante extraño te permite ordenar al azar, lo que en realidad no hace más que mezclar las filas de datos.
Puede hacerlo utilizando el siguiente comando:
sort -k4 -t, -R spl
Esto podría causar problemas reales si confundes tu interruptor -r y tu interruptor -R.
El comando ordenar también puede ordenar las fechas en orden de mes. Para demostrarlo, mire la siguiente tabla:
Datos mensuales utilizados Enero 4GF Febrero 3000K Marzo 6000KA Abril 100MM Mayo 5000M Junio 200K Julio 4000KA Agosto 2500KSeptiembre 3000KO Octubre 1.000KNoviembre 3GDiciembre 2G
La tabla anterior representa el mes del año y la cantidad de datos utilizados en un dispositivo móvil.
Puede ordenar las fechas por orden alfabético utilizando el siguiente comando:
sort -k1 -t, lista de datos utilizados
También puede ordenar por mes usando el siguiente comando:
sort -k1 -t, -M lista de datos utilizados
Ahora, obviamente, la tabla de arriba ya los muestra en orden de mes, pero si la lista estuviera poblada al azar, sería una forma sencilla de clasificarlos.
Mirando la segunda columna se puede ver que todos los valores están en un formato legible por el ser humano que no parece que sea fácil de ordenar, pero el comando sort puede ordenar los datos usados en la columna usando el siguiente comando:
sort -k2 -t, -h lista de datos utilizados
Cómo ordenar los datos transmitidos desde otros comandos
Mientras que la ordenación de datos en archivos es útil, el comando sort también se puede utilizar para ordenar la salida de otros comandos:
Por ejemplo, mire el comando ls:
ls -lt
El comando anterior devuelve cada archivo como una fila de datos con los siguientes campos desplegados en columnas:
- permisos
- recuento de nodos
- nombre de usuario
- nombre de grupo
- tamaño
- fecha del último acceso
- nombre de archivo
Puede ordenar la lista por tamaño de archivo ejecutando el siguiente comando:
ls -lt | clasificar -k5
Para obtener los resultados en orden inverso, utilice el siguiente comando:
ls -lt | clasificar -k5 -r
El comando sort también se puede utilizar junto con el comando ps, que enumera los procesos que se ejecutan en su sistema.
Por ejemplo, ejecute el siguiente comando ps en su sistema:
ps -eF
El comando anterior devuelve mucha información sobre los procesos que se están ejecutando actualmente en su sistema. Una de esas columnas es el tamaño y es posible que desee ver qué procesos son los más grandes.
Para ordenar estos datos por tamaño se utiliza el siguiente comando:
ps -eF | clasificar -k5
Resumen
No hay mucho en el comando de ordenación, pero puede ser útil muy rápidamente cuando se ordena la salida de otros comandos en un orden significativo, especialmente cuando el comando no tiene sus propios interruptores de ordenación disponibles.
Para más información, lea las páginas del manual del comando sort.