Skip to content

shuf Linux Command Guide

The shuf command in Linux is used to generate random permutations of input lines. It can shuffle the contents of a file or produce a random sample from a list. By default, shuf outputs a random permutation of the input. Users can specify the number of output lines using the -n option. Additional options allow users to set a seed for the random generator, specify a range of randomizations, and more. This command is useful for randomizing the order of lines in a file or selecting random items from a list.

Terminal window
shuf [option] [input_file]
OptionDescription
-eTreat each argument as an input line
-iGenerate random numbers within a specified range
-nOutput at most N lines
-rAllow repeated lines in the output
-zDelimit items with a NUL (‘\0’) byte
ParameterDescription
input_fileSpecify the input file. If not provided, uses stdin
Terminal window
shuf file.txt

Randomizes the order of lines in the file.txt.

Terminal window
shuf -e 1 2 3 4 5

Randomly shuffles the list of numbers 1, 2, 3, 4, and 5.

Terminal window
shuf -e a b c d e

Produces a random permutation of the elements a, b, c, d, and e.

Terminal window
shuf -n 3 file.txt

Shuffles the lines in file.txt and prints only 3 lines.

Terminal window
shuf -n 2 -e apple orange banana mango

Shuffles the fruits list and selects 2 random items.

Terminal window
shuf names.txt > shuffled_names.txt

Randomly shuffles the lines in names.txt and saves the output to shuffled_names.txt.

Terminal window
shuf -n 4 --random-source=/dev/urandom file.txt

Shuffles file.txt using /dev/urandom as the seed and selects 4 random lines.

To use the shuf command in Linux, execute the following command:

Terminal window
shuf <file>

The purpose of the shuf command in Linux is to generate random permutations of input lines.

How can I shuffle multiple files with shuf?

Section titled “How can I shuffle multiple files with shuf?”

You can shuffle multiple files using shuf by providing them as arguments to the command. Here is an example:

Terminal window
shuf file1.txt file2.txt

Can I limit the number of lines shuffled with shuf in Linux?

Section titled “Can I limit the number of lines shuffled with shuf in Linux?”

Yes, you can limit the number of lines shuffled with shuf by using the -n or --head-count option followed by the number of lines. Here is an example:

Terminal window
shuf -n 10 file.txt

How can I shuffle lines and then select a specific number of lines with shuf?

Section titled “How can I shuffle lines and then select a specific number of lines with shuf?”

To shuffle lines and then select a specific number of lines with shuf, you can combine the -n option with the command. Here is an example:

Terminal window
shuf file.txt -n 5

Is there a way to avoid repeating shuffled lines in shuf?

Section titled “Is there a way to avoid repeating shuffled lines in shuf?”

Yes, you can prevent shuf from repeating shuffled lines by using the -r or --repeat option. This will shuffle lines and print them in a random order without repeating any line until all lines have been printed at least once.

  • Generating randomized quiz questions
  • Shuffling the order of lines in a text file
  • Randomly selecting winners in a contest
  • Creating shuffled playlists
  • Generating random test data for software testing