Skip to main content

Cómo ordenar datos en un archivo usando Linux

Como imprimir folha Frente e Verso - (2017) (Abril 2025)

Como imprimir folha Frente e Verso - (2017) (Abril 2025)
Anonim

Introducción

En esta guía, le mostraré cómo ordenar los datos en archivos delimitados y de la salida de otros comandos.

No se sorprenderá al saber que el comando que utiliza para realizar esta tarea se llama "ordenar". Todos los conmutadores principales del comando de clasificación se proporcionarán en este artículo.

Data de muestra

Los datos en un archivo se pueden ordenar siempre que estén delimitados de alguna manera.

Por ejemplo, tomemos la tabla final de la liga de la Premier League de Escocia el 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.

EquipoGoles anotadosMetas en contraPuntos
céltico933186
Aberdeen624871
Copas594065
St Johnstone585556
Motherwell476350
Condado de Ross556148
Inverness544852
Dundee535748
Partick415046
Hamilton426343
Kilmarnock416436
Dundee United457028

Cómo ordenar los datos en archivos

Desde esa mesa, puedes ver que Celtic ganó la liga y Dundee United fue el último. Si eres un fanático de Dundee United, querrás sentirte mejor y puedes hacerlo clasificando los goles marcados.

Para hacer esto ejecuta 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
  • St Johnstone
  • Copas
  • Aberdeen
  • céltico

La razón por la que los resultados están en este orden es que la columna 2 es la columna de metas anotadas y la clasificación va de la más baja a la más alta.

El conmutador -k le permite elegir la columna por la que se ordenará y el conmutador -t le permite elegir el delimitador.

Para sentirse realmente felices, los fanáticos de Dundee United pueden ordenar por columna 4 usando el siguiente comando:

sort -k4 -t, spl

Ahora Dundee United es superior y Celtic está en la parte inferior.

Por supuesto, esto haría que los fanáticos tanto de Celtic como de Dundee sean muy infelices. Para poner las cosas en orden, puede ordenar en orden inverso usando el siguiente interruptor:

ordenar -k4 -t, -r spl

Un interruptor bastante extraño le permite ordenar de forma aleatoria, lo que realmente confunde las filas de datos.

Puedes hacerlo usando el siguiente comando:

ordenar -k4 -t, -R spl

Esto podría causar problemas reales si confundió su -r y su interruptor -R.

El comando de ordenación también puede ordenar las fechas en orden de mes. Para demostrar mirar en la siguiente tabla:

MesDatos utilizados
enero4G
febrero3000K
marzo6000K
abril100M
Mayo5000M
junio200K
julio4000K
agosto2500K
septiembre3000K
octubre1000K
noviembre3G
diciembre2G

La tabla anterior representa el mes del año y la cantidad de datos utilizados en un dispositivo móvil.

Puedes ordenar las fechas alfabéticamente usando el siguiente comando:

sort -k1 -t, datausedlist

También puede ordenar por mes usando el siguiente comando:

ordenar -k1 -t, -M datausedlist

Ahora, obviamente, la tabla anterior ya los muestra en orden del mes, pero si la lista se completó al azar, esta sería una forma simple de clasificarlos.

Mirando la segunda columna, puede ver que todos los valores están en un formato legible por humanos que no parece que sea fácil de ordenar, pero el comando de clasificación puede ordenar la columna de datos utilizados mediante el siguiente comando:

ordenar -k2 -t, -h datausedlist

Cómo ordenar los datos pasados ​​de otros comandos

Si bien la clasificación de datos en archivos es útil, el comando de ordenación también se puede usar para ordenar la salida de otros comandos:

Por ejemplo, mira el comando ls:

ls -lt

El comando anterior devuelve cada archivo como una fila de datos con los siguientes campos mostrados en columnas:

  • permisos
  • recuento de nodos
  • nombre de usuario
  • Nombre del grupo
  • tamaño
  • última fecha de acceso
  • nombre del archivo

Puede ordenar la lista por tamaño de archivo ejecutando el siguiente comando:

ls -lt | ordenar -k5

Para obtener los resultados en orden inverso, usaría el siguiente comando:

ls -lt | ordenar -k5 -r

El comando de clasificación también se puede usar 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 ejecutan 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, usaría el siguiente comando:

ps -eF | ordenar -k5

Resumen

No hay mucho en el comando de clasificación, pero puede ser útil muy rápidamente al ordenar la salida de otros comandos en un orden significativo, especialmente cuando el comando no tiene sus propios interruptores de clasificación disponibles.

Para más información, lea las páginas del manual para el comando ordenar.