Linux shuf Befehl für Anfänger (mit Beispielen)

Wenn Sie jemals das Kartenspiel gespielt haben, werden Sie wahrscheinlich den Begriff Mischen kennen. Etwas schwer vorstellbar, es gibt ein Linux-Befehlszeilen-Tool, das genau das mit Zeilen in Dateien macht. In diesem Tutorial werden wir die Grundlagen des Befehls „shuf“ anhand einiger leicht verständlicher Beispiele diskutieren.

Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele hier auf einer Ubuntu 18.04 LTS Maschine getestet wurden.

Linux shuf Befehl

Mit dem Befehl shuf unter Linux können Sie zufällige Permutationen erzeugen. Folgendes ist seine Syntax:

shuf [OPTION]... [FILE]

Und so erklärt es die Man Page des Tools:

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

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie der shuf-Befehl funktioniert.

Q1. Wie kann man den Befehl shuf verwenden?

Die grundlegende Bedienung ist sehr einfach. Geben Sie einfach einen Dateinamen als Eingabe ein. Hier ist ein Beispiel:

shuf test.txt

Die Datei test.txt enthält nun die folgenden Zeilen:

1
2
3
4
5
6
7
8
9

Aber der obige Befehl shuf erzeugte die folgende Ausgabe:

3
4
6
5
1
8
2
7
9

So kann man sehen, dass die Linien gemischt wurden.

Q2. Wie kann man die Anzahl der Zeilen in der Ausgabe begrenzen?

Wenn Sie die Anzahl der Zeilen in der Shuf-Ausgabe begrenzen möchten, verwenden Sie die Befehlszeilenoption -n, die die Übergabe einer Zahl erfordert, die die maximale Anzahl der Zeilen darstellt, die Sie in der Ausgabe verwenden möchten.

Zum Beispiel:

shuf -n 3 test.txt

Der obige Befehl erzeugte die folgende Ausgabe:

6
4
9

Q3. Wie kann man die Wiederholung von Linien in der Ausgabe erlauben?

Angenommen, die Eingabedatei enthält 9 Zeilen, aber Sie möchten, dass shuf mehr Zeilen produziert als die Ausgabedatei (mit der oben beschriebenen Option -n). Dies kann mit der Option -r erfolgen.

-r, --repeat
              output lines can be repeated

Wenn Sie also möchten, dass shuf 25 Zeilen in der Ausgabe erzeugt, führen Sie den folgenden Befehl aus:

shuf -r -n 25 test.txt

Hier ist die Ausgabe, die dieser Befehl erzeugt hat:

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. Wie man Shuf dazu bringt, Eingabeargumente als Zeilen zu behandeln?

Verwenden Sie dazu die Kommandozeilenoption -e. Hier ist ein Beispiel:

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

Hier ist die Ausgabe, die von diesem Befehl erzeugt wird:

9
1
7
8
6
2
3
5
4

Fazit

Einverstanden, Shuf ist nicht die Art von Werkzeug, das Sie jeden Tag benötigen würden, aber es schadet nicht, etwas über dieses Programm zu erfahren, zumal seine Lernkurve nicht so steil ist. Sobald du damit fertig bist, das zu üben, was wir hier besprochen haben, gehe auf die Man Page des Tools, um mehr darüber zu erfahren.

Das könnte dich auch interessieren …