UNSORT(1) BSD General Commands Manual UNSORT(1)


unsort — reorder lines in a file in semirandom ways


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


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.



Free Software March 28, 2017 Free Software