Home
Last updated
The shuf
command generates random permutations from input lines to standard output. If given a file or series of files it will shuffle the lines and write the result to standard output. It can also limit the number of results returned supporting selecting random lines from a file or data from a list.
To shuffle the lines in a file using the shuf
command pass a file, files or standard input to the command. The result will be printed to standard output. In the following example we have a list of cards in a file saved as cards.txt
. This file is ordered by suit and number.
shuf cards.txt
4D
9D
QC
3S
6D
The shuf
command shuffles the lines and outputs this to standard output.
To pick a random line from a file using shuf
use the -n
option. This limits the output to the number specified.
shuf -n 1 cards.txt
KH
To select more than one line change the number.
shuf -n 5 cards.txt
4H
9S
KH
9D
9H
To shuffle words passed to shuf
in standard input use the -e
option. This shuffles items separated by spaces.
shuf -e one two three
three
two
one
If you wanted to quickly decide whose turn it is to make the tea you can use shuf
.
shuf -n 1 -e George Kirsten Fin Bea
Bea
Bea make the tea!
Have an update or suggestion for this article? You can edit it here and send me a pull request.