UNSORT(1)

NAME
unsort - reorder lines in a file in semirandom ways

SYNOPSIS
unsort [-hvrpncmMsz0l] [- -help] [- -version] [- -random] [- -heuristic] [- -identity] [- -filenames[=profile]] [- -separator sep] [- -concatenate] [- -merge] [- -merge-random] [- -seed integer] [- -zero-terminated] [- -null] [- -linefeed] [file ...]

DESCRIPTION
unsort prints the lines in the input files (or standard input) in semi-random order. Available algorithms are a Mersenne Twister based PRNG and a heuristic algorithm that aims to create a subjective even distribution.

  Command line options

-h, - -help
    Display a concise summary of the available options and argument syntax.

-v, - -version
    Display version and copyright information.

-r, - -random
    Use the Mersenne Twister based randomization algorithm.

-p, - -heuristic
    Use the heuristic “ shuffling ” algorithm which permutes the lines in such a way that they're spread more or less evenly in the output. This is the default.

-n, - -identity
    Do not reorder lines in the input. Useful if you just want to merge the files.

-f, - -filenames[=profile]
    Assumes the input has a structure similar to filenames and apply randomization seperately to each directory level.

    An example would be a list of mp3 files where the top level is the genre, the second level is the name of the artist and the third level is the name of the album. The - -filenames option allows you to randomize the list with different randomization strategies for each of the artist, album and track levels.

    Two types of randomization are supported: simple and proportional. Simple randomization picks one entry from each directory at that level in a round-robin fashion. If one directory contains fewer entries than the others, it will run out and stop appearing at some point before the end of the output.

    Proportional randomization will spread the directory entries evenly over the output.

    The profile argument can be used to specify which randomization types to use. It is a concatenation of the randomization types to use for each level. Use 1 for simple randomization and n for proportional randomization. If the input has more levels than specified, the last character determines the randomization type for all subsequent levels.

    For example, - -filenames=n1n means: use proportional randomization for the genre, use simple randomization for the artists and use proportional randomization again for the album names and all levels below that.

-S, - -separator sep
    The directory separator to use with -f. Defaults to ‘ / ’.

-r, - -concatenate
    Concatenate all input files then apply the shuffling algorithm to the result as a whole.

-m, - -merge
    Shuffle all input files seperately then merge the result. Equal-sized files will be merged in the order in which they appear on the command line.

-M, - -merge-random
    Shuffle all input files seperately then merge the result. Equal-sized files will be merged in random order. This is the default.

-s, - -seed integer
    Use this integer as a seed, instead of random data from the environment.

-z, - -zero-terminated, -0, - -null
    Lines are terminated with a \0 character.

-l, - -linefeed
    Lines are terminated with a \n character. This is the default.

SEE ALSO
sort(1)