Příkaz Shuf se používá ke generování náhodných permutací v operačních systémech Linux a Unix. Pomocí příkazu shuf můžeme náhodně zamíchat řádky daného vstupního souboru. Příkaz Shuf je součástí GNU Coreutils, takže se nemusíte obtěžovat s instalací. V tomto krátkém tutoriálu vám ukážu některé příklady příkazu shuf.
Výukový program příkazu Shuf s příklady
Mám soubor s názvem ostechnix.txt s následujícím obsahem.
$ cat ostechnix.txt line1 line2 line3 line4 line5 line6 line7 line8 line9 line10
Nyní zobrazme výše uvedené řádky v náhodném pořadí. Chcete-li to provést, spusťte:
$ shuf ostechnix.txt line2 line8 line5 line10 line7 line1 line4 line6 line9 line3
Vidět? Výše uvedený příkaz náhodně upravil pořadí řádků v souboru s názvem "ostechnix.txt" a vydal výsledek.
Možná budete chtít zapsat výstup do jiného souboru. Například chci uložit výstup do souboru s názvem output.txt . Chcete-li tak učinit, nejprve vytvořte soubor output.txt:
$ touch output.txt
Poté zapište výstup do tohoto souboru pomocí -o příznak jako níže.
$ shuf ostechnix.txt -o output.txt
Výše uvedený příkaz náhodně zamíchá obsah souboru ostechnix.txt a zapíše výstup do souboru output.txt. Obsah souboru output.txt můžete zobrazit příkazem:
$ cat output.txt line2 line8 line9 line10 line1 line3 line7 line6 line4 line5
Chci jen zobrazit libovolný náhodný řádek ze souboru. Jak to mohu udělat? Jednoduché!
$ shuf -n 1 ostechnix.txt line6
Podobně můžeme vybrat prvních „n“ náhodných položek. Následující příkaz zobrazí pouze prvních pět náhodných položek.
$ shuf -n 5 ostechnix.txt line10 line4 line5 line9 line3
Místo čtení řádků ze souboru můžeme přímo předat vstupy pomocí -e příznak jako níže.
$ shuf -e line1 line2 line3 line4 line5 line1 line3 line5 line4 line2
Můžete také zamíchat čísla:
$ shuf -e 1 2 3 4 5 3 5 1 4 2
Chcete-li rychle vybrat kteroukoli z daného rozsahu, použijte místo toho tento příkaz.
$ shuf -n 1 -e 1 2 3 4 5
Nebo vyberte libovolná tři náhodná čísla jako níže.
$ shuf -n 3 -e 1 2 3 4 5 3 5 1
Můžeme také generovat náhodná čísla v určitém rozsahu. Chcete-li například zobrazit náhodná čísla od 1 do 10, jednoduše použijte:
$ shuf -i 1-10 1 9 8 2 4 7 6 3 10 5
Další podrobnosti naleznete na manuálových stránkách.
$ man shuf