Hoe om data in 'n lêer met behulp van Linux te sorteer

inleiding

In hierdie gids sal ek jou wys hoe om data in geskei lêers en uit die uitvoer van ander opdragte te sorteer.

Jy sal nie verbaas wees om te leer dat die opdrag wat jy gebruik om hierdie taak uit te voer, "sorteer" genoem word nie. Al die belangrike skakelaars van die sorteeropdrag sal in hierdie artikel voorsien word.

Voorbeeld Data

Die data in 'n lêer kan gesorteer word solank dit op een of ander manier geskei is.

Kom ons neem byvoorbeeld die finale liga-tabel van die Skotse Premierliga verlede jaar en stoor die data in 'n lêer genaamd "spl".

U kan 'n data-lêer soos volg saamstel met een klub en die data vir daardie klub geskei deur kommas op elke ry.

Span Doelwitte getoets Doelwitte teen punte
Celtic 93 31 86
Aberdeen 62 48 71
harte 59 40 65
St Johnstone 58 55 56
Motherwell 47 63 50
Ross County 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

Hoe om data in lêers te sorteer

Vanuit daardie tabel kan jy sien dat Celtic die liga gewen het en Dundee United het laas gekom. As jy 'n Dundee United fan is, wil jy dalk jouself beter laat voel, en jy kan dit doen deur te sorteer op die behaalde doeleindes.

Om dit te doen, voer die volgende opdrag uit:

sorteer -k2 -t, spl

Hierdie keer sal die bestelling soos volg wees:

Die rede waarom die resultate in hierdie volgorde is, is dat kolom 2 die doelwitte behaal is en die soort gaan van laag na hoog.

Met die -k skakelaar kan u die kolom kies om deur te sorteer en die -t skakelaar kan u die delimiter kies.

Om hulself regtig gelukkig te maak, kan die Dundee United fans volgens kolom 4 sorteer deur die volgende opdrag te gebruik:

sorteer -k4 -t, spl

Nou Dundee United is bo en Keltiese is aan die onderkant.

Dit sou natuurlik sowel Celtic as Dundee-aanhangers baie ongelukkig maak. Om dinge reg te stel, kan jy in omgekeerde volgorde sorteer deur die volgende skakelaar te gebruik:

sorteer -k4 -t, -r spl

'N Bietjie bizarige skakelaar laat jou ewekansig sorteer wat regtig net die rye data opduik.

U kan dit doen deur die volgende opdrag te gebruik:

sorteer -k4 -t, -R spl

Dit kan werklike probleme veroorsaak as jy jou -r en jou -R skakelaar gemeng het.

Die sorteer opdrag kan ook datums in die maand volgorde sorteer. Om te demonstreer, kyk na die volgende tabel:

maand Data gebruik
Januarie 4G
Februarie 3000K
Maart 6000K
April 100M
Mei 5000m
Junie 200K
Julie 4000K
Augustus 2500K
September 3000K
Oktober 1000k
November 3G
Desember 2G

Bogenoemde tabel verteenwoordig die maand van die jaar en die hoeveelheid data wat op 'n mobiele toestel gebruik word.

U kan die datums alfabeties sorteer deur die volgende opdrag te gebruik:

sorteer -k1 -t, datausedlist

U kan ook per maand sorteer deur die volgende opdrag te gebruik:

sorteer -k1 -t, -M datausedlist

Nou sien die tabel hierbo klaarblyklik maandeliks, maar as die lys willekeurig bevolk is, is dit 'n eenvoudige manier om hulle te sorteer.

As jy na die tweede kolom kyk, kan jy sien dat al die waardes in 'n leesbare formaat is wat nie lyk nie. Dit sal maklik wees om te sorteer, maar die soort opdrag kan die gegewens wat gebruik word, sorteer deur die volgende opdrag te gebruik:

sorteer -k2 -t, -h data gebruiklys

Hoe om data wat deur ander opdragte geslaag word, te sorteer

Terwyl die sortering van data in lêers nuttig is, kan die soort bevel ook gebruik word om die uitvoer van ander opdragte te sorteer:

Kyk byvoorbeeld na die ls-opdrag :

ls -lt

Bogenoemde opdrag gee elke lêer as 'n ry data terug met die volgende velde wat in kolomme vertoon word:

U kan die lys volgens lêer grootte sorteer deur die volgende opdrag uit te voer:

ls -lt | sorteer -k5

Om die resultate in omgekeerde volgorde te kry, sal u die volgende opdrag gebruik:

ls -lt | sorteer -k5 -r

Die soort bevel kan ook gebruik word in samewerking met die ps bevel wat prosesse bevat wat op u stelsel loop.

Begin byvoorbeeld die volgende ps opdrag op u stelsel:

ps-eF

Bogenoemde opdrag gee baie inligting oor die prosesse wat tans op u stelsel loop.

Een van die kolomme is die grootte en jy wil dalk sien watter prosesse die grootste is.

Om hierdie data volgens grootte te sorteer, gebruik jy die volgende opdrag:

ps-eF | sorteer -k5

opsomming

Daar is nie veel aan die soort opdrag nie, maar dit kan baie nuttig wees wanneer u die uitvoer van ander opdragte in 'n sinvolle volgorde sorteer, veral as die opdrag nie sy eie soort skakelaars beskikbaar het nie.

Vir meer inligting, lees die handleiding bladsye vir die sorteeropdrag.