Com ordenar dades en un fitxer amb Linux

Introducció

En aquesta guia, us mostraré com ordenar les dades en fitxers delimitats i de la sortida d'altres comandaments.

No se sorprendrà d'aprendre que l'ordre que utilitzeu per realitzar aquesta tasca s'anomena "ordenar". Tots els principals commutadors de la comanda class es proporcionaran en aquest article.

Dades de mostra

Les dades d'un fitxer es poden ordenar sempre que estigui delimitat d'alguna manera.

Per exemple, prenguem la taula de la Lliga final de la Premier League escocesa l'any passat i emmagatzemem les dades en un fitxer anomenat "spl".

Podeu crear un fitxer de dades de la manera següent amb un club i les dades d'aquest club separades per comes en cada fila.

Equip Gols marcats Objectius en contra Punts
Celtic 93 31 86
Aberdeen 62 48 71
Cors 59 40 65
St Johnstone 58 55 56
Motherwell 47 63 50
Comtat de Ross 55 61 48
Inverness 54 48 52
Dundee 53 57 48
Partick 41 50 46
Hamilton 42 63 43
Kilmarnock 41 64 36
Dundee United 45 70 28

Com ordenar les dades als fitxers

A partir d'aquesta taula, es pot veure que Celtic va guanyar la Lliga i Dundee United va arribar l'últim. Si sou un fan de Dundee United, és possible que us vulgueu sentir millor i podeu fer-ho ordenant els gols marcats.

Per fer-ho, executeu el següent comandament:

ordenar -k2 -t, spl

Aquesta vegada, l'ordre seria el següent:

El motiu pel qual els resultats són en aquest ordre és que la columna 2 és la columna marcada pels objectius i el tipus passa del més baix al més alt.

El botó -k us permet triar la columna per ordenar i el botó -t us permet triar el delimitador.

Per fer-vos feliços, els fanàtics de Dundee United poden ordenar per la columna 4 utilitzant el següent comandament:

ordenar -k4 -t, spl

Ara, Dundee United és superior i el Celtic es troba a la part inferior.

Per descomptat, això farà que tant els fanàtics celtes com els de Dundee siguin molt infeliços. Per posar les coses bé, podeu ordenar en ordre invers amb el següent interruptor:

ordenar -k4 -t, -r spl

Un canvi bastant estrany li permet ordenar aleatòriament el que realment augmenta les files de dades.

Podeu fer-ho utilitzant el següent comandament:

ordenar -k4 -t, -R spl

Això podria causar problemes reals si vau barrejar el vostre -r i el vostre interruptor-R.

L'ordre d'ordenació també pot ordenar dates en ordre de mes. Per demostrar, mira la següent taula:

Mes Dades utilitzades
Gener 4G
Febrer 3000K
Març 6000K
Abril 100M
Maig 5000M
juny 200K
Juliol 4000K
Agost 2500K
Setembre 3000K
Octubre 1000K
de novembre 3G
Desembre 2G

La taula anterior representa el mes de l'any i la quantitat de dades que s'utilitzen en un dispositiu mòbil.

Podeu ordenar les dates alfabèticament mitjançant l'ordre següent:

ordenar-k1 -t, llista de dades usada

També podeu ordenar per mes amb el següent comandament:

ordenar -k1 -t, -M datausedlist

Ara, òbviament, la taula anterior ja els mostra en ordre mensual però si la llista es va poblar aleatòriament, aquesta seria una forma senzilla de classificar-los.

En mirar la segona columna es pot veure que tots els valors es troben en un format llegible per humans que no sembla que seria fàcil d'ordenar, però l'ordre de classificació pot ordenar la columna utilitzada per dades mitjançant l'ordre següent:

ordenar -k2 -t, -h llista de dades usada

Com ordenar les dades passades des d'altres ordres

Mentre la classificació de dades en fitxers és útil, l'ordre d'ordenació també es pot utilitzar per ordenar la sortida d'altres ordres:

Per exemple, mira l'ordre ls :

ls -lt

La comanda anterior retorna cada fitxer com una fila de dades amb els següents camps que es mostren en columnes:

Podeu ordenar la llista per mida de fitxer executant l'ordre següent:

ls -lt | ordenar-k5

Per obtenir els resultats en ordre invers, utilitzeu el següent comandament:

ls -lt | ordenar -k5 -r

La comanda sort també es pot utilitzar juntament amb la comanda ps que enumera els processos que s'executen al vostre sistema.

Per exemple, executeu la següent comanda ps al vostre sistema:

ps -eF

La comanda anterior retorna molta informació sobre els processos que s'estan executant actualment al vostre sistema.

Una d'aquestes columnes és la mida i és possible que vulgueu veure quins són els processos més importants.

Per ordenar aquestes dades per mida, utilitzaria el següent comandament:

ps -eF | ordenar-k5

Resum

No hi ha molt a l'ordre de classificació, però pot ser útil molt ràpidament en ordenar la sortida d'altres ordres en un ordre significatiu, especialment quan la comanda no té els seus propis interruptors de classificació disponibles.

Per obtenir més informació, llegiu les pàgines del manual per a l'ordre d'ordenació.