Linux shuf Command Tutorial voor Beginners (met Voorbeelden)

Als je ooit het kaartspel gespeeld hebt, ken je waarschijnlijk de term sjoelen. Een beetje moeilijk voor te stellen, is dat er een Linux commando-regel hulpmiddel is dat precies dat doet met regels in bestanden. In deze handleiding bespreken we de basisprincipes van het ‘shuf’ 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 18.04 LTS machine.

Linux shuf commando

Met het shuf commando in Linux kun je willekeurige permutaties genereren. Hierna volgt de syntaxis ervan:

shuf [OPTION]... [FILE]

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

Write a random permutation of the input lines to standard output.

Hieronder volgen enkele voorbeelden in vraag en antwoord stijl die je een beter idee moeten geven over hoe het shuf commando werkt.

Q1. Hoe gebruik je het commando shuf?

Het basisgebruik is heel eenvoudig. Geef gewoon een bestandsnaam door als invoer. Hier is een voorbeeld:

shuf test.txt

Nu bevat het test.txt bestand de volgende regels:

1
2
3
4
5
6
7
8
9

Maar het shuf commando hierboven produceerde de volgende uitvoer:

3
4
6
5
1
8
2
7
9

Je ziet dus dat de regels door elkaar geschud werden.

Q2. Hoe beperk je het aantal regels in de uitvoer?

Als je het aantal regels in de uitvoer van shuf wilt beperken, gebruik je de -n commandoregeloptie, waarbij je een getal moet doorgeven dat staat voor het maximum aantal regels dat je in de uitvoer wilt hebben.

Voorbeeld:

shuf -n 3 test.txt

Het bovenstaande commando produceerde de volgende uitvoer:

6
4
9

Q3. Hoe kun je herhaling van regels in uitvoer toestaan?

Stel dat het invoerbestand 9 regels bevat, maar je wilt dat shuf meer regels dan dat in uitvoer produceert (met de hierboven besproken -n optie). Dit kan met de -r optie.

-r, --repeat
              output lines can be repeated

Dus als je wilt dat shuf 25 regels in uitvoer produceert, voer dan het volgende commando uit:

shuf -r -n 25 test.txt

Hier is de uitvoer die dit commando produceerde:

6
8
4
5
9
3
3
1
2
5
7
5
9
5
8
5
2
8
8
7
4
4
8
5
3

Q4. Hoe kun je shuf invoerargumenten als regels laten behandelen?

Gebruik hiervoor de -e commandolijn optie. Hier is een voorbeeld:

shuf -e 1 2 3 4 5 6 7 8 9

Hier is de uitvoer die dit commando oplevert:

9
1
7
8
6
2
3
5
4

Conclusie

Toegegeven, shuf is niet het soort gereedschap dat je elke dag nodig hebt, maar het kan geen kwaad dit hulpmiddel te leren kennen, vooral omdat de leercurve niet zo steil is. Als je klaar bent met oefenen wat we hier besproken hebben, ga dan naar de manpagina van het gereedschapom er meer over te weten te komen.