Der Shuf-Befehl wird verwendet, um zufällige Permutationen in Linux- und Unix-ähnlichen Betriebssystemen zu generieren. Mit dem Befehl shuf können wir die Zeilen einer bestimmten Eingabedatei zufällig mischen. Der Shuf-Befehl ist Teil von GNU Coreutils, sodass Sie sich nicht um die Installation kümmern müssen. Lassen Sie mich Ihnen in diesem kurzen Tutorial einige Beispiele für den Befehl shuf zeigen.
Das Shuf-Befehls-Tutorial mit Beispielen
Ich habe eine Datei namens ostechnix.txt mit folgendem Inhalt.
$ cat ostechnix.txt line1 line2 line3 line4 line5 line6 line7 line8 line9 line10
Lassen Sie uns nun die obigen Zeilen in zufälliger Reihenfolge anzeigen. Führen Sie dazu Folgendes aus:
$ shuf ostechnix.txt line2 line8 line5 line10 line7 line1 line4 line6 line9 line3
Sehen? Der obige Befehl hat die Reihenfolge der Zeilen in der Datei namens "ostechnix.txt" randomisiert und das Ergebnis ausgegeben.
Möglicherweise möchten Sie die Ausgabe in eine andere Datei schreiben. Zum Beispiel möchte ich die Ausgabe in einer Datei namens output.txt speichern . Erstellen Sie dazu zunächst die Datei output.txt:
$ touch output.txt
Schreiben Sie dann die Ausgabe mit -o in diese Datei kennzeichnen wie unten.
$ shuf ostechnix.txt -o output.txt
Der obige Befehl mischt den Inhalt der Datei ostechnix.txt nach dem Zufallsprinzip und schreibt die Ausgabe in die Datei output.txt. Sie können den Inhalt der Datei output.txt mit folgendem Befehl anzeigen:
$ cat output.txt line2 line8 line9 line10 line1 line3 line7 line6 line4 line5
Ich möchte nur eine der zufälligen Zeilen aus der Datei anzeigen. Wie kann ich es tun? Ganz einfach!
$ shuf -n 1 ostechnix.txt line6
Ebenso können wir die ersten "n" zufälligen Einträge auswählen. Der folgende Befehl zeigt nur die ersten fünf zufälligen Einträge an.
$ shuf -n 5 ostechnix.txt line10 line4 line5 line9 line3
Anstatt die Zeilen aus einer Datei zu lesen, können wir die Eingaben direkt mit -e übergeben kennzeichnen wie unten.
$ shuf -e line1 line2 line3 line4 line5 line1 line3 line5 line4 line2
Sie können die Zahlen auch mischen:
$ shuf -e 1 2 3 4 5 3 5 1 4 2
Verwenden Sie stattdessen diesen Befehl, um schnell einen aus dem angegebenen Bereich auszuwählen.
$ shuf -n 1 -e 1 2 3 4 5
Oder wählen Sie drei zufällige Zahlen wie unten aus.
$ shuf -n 3 -e 1 2 3 4 5 3 5 1
Wir können auch Zufallszahlen innerhalb eines bestimmten Bereichs generieren. Um beispielsweise Zufallszahlen zwischen 1 und 10 anzuzeigen, verwenden Sie einfach:
$ shuf -i 1-10 1 9 8 2 4 7 6 3 10 5
Weitere Einzelheiten finden Sie in den Manpages.
$ man shuf