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.