Linux sort Command Tutorial voor Beginners (8 Voorbeelden)

Zoek je een commandoregel hulpprogramma om inhoud in tekstbestanden te sorteren? Zoek niet verder dan Sort, een hulpmiddel dat speciaal voor dit doel gebouwd is. In deze zelfstudie bespreken we dit commando aan de hand van enkele gemakkelijk te begrijpen voorbeelden. Maar voor we dat doen, is het de moeite waard te vermelden dat alle voorbeelden hier getest zijn op een Ubuntu 16.04 LTS machine.

Linux sorteer commando

Met het Sort commando kun je regels in een tekstbestand sorteren. Hieronder volgt zijn syntaxis:

sort [OPTION]... [FILE]...

En hier is hoe de man pagina van het gereedschap het beschrijft:

Write sorted concatenation of all FILE(s) to standard output.
With no FILE, or when FILE is -, read standard input.

Hieronder volgen enkele voorbeelden in vraag en antwoord stijl die je een goed idee moeten geven over hoe sort werkt.

Q1. Hoe gebruik je sort commando?

Stel dat je een bestand hebt dat een aantal namen bevat, en je wilt die in alfabetische volgorde sorteren. Dan hoef je alleen maar de naam van het bestand als invoer aan het sort commando door te geven.

Bijvoorbeeld:

sort file1

Dus als bestand 1 de volgende regels bevatte:

Zimbabwe
Serbia
Norway
Australia

Dan zou de uitvoer zijn:

Australia
Norway
Serbia
Zimbabwe

Q2. Hoe kun je sort voorloop spaties laten negeren?

Afhankelijk van je locale kun je zien dat sort onverwachte resultaten geeft als regels voorloop spaties bevatten. Bijvoorbeeld:

Stel dat het bestand de volgende regels bevat:

Zimbabwe
 Serbia
  Norway
Australia

En je voert sort uit, alleen om het volgende resultaat te zien:

  Norway
 Serbia
Australia
Zimbabwe

Dit lijkt onverwacht, maar wat er in werkelijkheid gebeurde is dat regels die voorloopspaties bevatten gesorteerd werden op basis van spaties, terwijl andere alfabetisch gesorteerd werden. Om ervoor te zorgen dat het sorteer commando leidende spaties negeert, gebruik je de -b optie. In dat geval krijg je dus het volgende resultaat:

Australia
  Norway
 Serbia
Zimbabwe

Q3. Hoe kun je sort hoofdletters laten negeren?

Als een bestand woorden/regels heeft die zowel met hoofdletters als met kleine letters beginnen, dan geeft sort die met hoofdletters bovenaan weer. Als je wilt, kun je dit gedrag echter veranderen met de -f commandoregeloptie.

Bijvoorbeeld:

sort -f file1

Q4. Hoe kun je sort getallen laten vergelijken?

Stel dat een bestand alleen getallen bevat, en je wilt dat sort ze rangschikt. Dan kan dit mogelijk gemaakt worden met de -g commandoregel optie.

sort -g file1

Bijvoorbeeld een bestand met de volgende inhoud:

32000
2500
50000
54

Kan met het sort commando gesorteerd worden om de volgende resultaten op te leveren:

54
2500
32000
50000

Q5. Hoe kun je sort laten werken met door mensen leesbare numerieke waarden?

In het geval dat je sort wilt laten werken met voor mensen leesbare numerieke waarden zoals 1K, 2G, enz. gebruik je de -h commandoregeloptie.

sort -h file1

Dus, bijvoorbeeld, een bestand met volgende regels:

1M
2G
3K

Kan op de volgende manier gesorteerd worden met de -h optie:

3K
1M
2G

Q6. Hoe kun je sort alleen laten controleren op gesorteerde invoer?

Voor het geval je wilt dat sort alleen controleert of een bestand gesorteerd is of niet, gebruik je de -c commandoregeloptie.

sort -c file1

Bijvoorbeeld, als bestand1 de volgende regels bevat:

dhg
lkh
zyb
abd

Dan zie je bij gebruik van -c dat sort de volgende uitvoer produceert:

sort: file1:4: disorder: abd

Je merkt dus op dat het gereedschap niet alleen aangeeft dat er een wanorde is, maar ook de plaats ervan uitvoert.

Q7. Hoe kan sort reeds gesorteerde bestanden laten samenvoegen?

Als je wilt dat sort twee reeds gesorteerde bestanden samenvoegt, gebruik dan de -m commandoregeloptie.

sort -m file1 file2

Bijvoorbeeld, zowel bestand1 als bestand2 bevatten in mijn geval volgende regels:

abd
dhg
lkh
zyb

En hier zie je hoe de -m optie deze bestanden samenvoegde:

abd
abd
dhg
dhg
lkh
lkh
zyb
zyb

Q8. Hoe kan sort het resultaat naar een bestand laten schrijven?

Standaard schrijft het sort commando uitvoer naar STDOUT. Je kunt het echter dwingen naar een bepaald bestand te schrijven met de -o optie.

Bijvoorbeeld:

sort file1 -o output.txt

Conclusie

Het sort commando biedt heel wat opties. We hebben hier enkele belangrijke besproken. We stellen voor dat je deze eerst oefent, en als je klaar bent, naar de manpagina van het commando gaatom er meer over te leren.