SHUFFLE(1) | General Commands Manual | SHUFFLE(1)

# NAME

`shuffle` — print a random permutation of the command line arguments

# SYNOPSIS

`shuffle` | [`-0`] [`-f` filename ...] [`-n` number] [`-p` number] [arg] [...]

# DESCRIPTION

The `shuffle` program prints a random permutation (or “shuffle”) of its command line arguments. This can be useful in shell scripts for selecting a random order in which to do a set of tasks, view a set of files, etc.

If the `-f` option is given, the data is taken from that files' contents or if the filename is - “stdin”.

If the `-n` option is given, its argument is treated as a number, and the program prints a random permutation of the numbers greater than or equal to 0 and less than the argument.

If the `-p` option is given, its argument is treated as a number, and the program prints that number of randomly selected lines or arguments in a random order.

The `-0` option changes the field separator character from \n to \0, so that the output is suitable to be sent to xargs(1) (to handle filenames with whitespace in them).

# EXAMPLES

    $ shuffle a b c d
    c
    b
    d
    a
    $ shuffle -p 1 a b c d
    d
    $ shuffle -n 4 -p 2
    0
    3

# SEE ALSO

jot(1), random(6)

# HISTORY

The `shuffle` program first appeared in NetBSD 1.4.

# AUTHORS

Written by Perry E. Metzger ⟨perry@piermont.com⟩.

February 18, 2009 | NetBSD 11.99