1.\" Copyright (c) 1994 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 3. All advertising materials mentioning features or use of this software |
13.\" must display the following acknowledgment: |
14.\" This product includes software developed by the University of 15.\" California, Berkeley and its contributors. 16.\" 4. Neither the name of the University nor the names of its contributors 17.\" may be used to endorse or promote products derived from this software 18.\" without specific prior written permission. 19.\" 20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30.\" SUCH DAMAGE. 31.\" 32.\" @(#)random.6 8.2 (Berkeley) 3/31/94 |
33.\" $FreeBSD: head/games/random/random.6 110723 2003-02-11 19:32:18Z seanc $ |
34.\" |
35.Dd February 8, 2003 |
36.Dt RANDOM 6 37.Os 38.Sh NAME 39.Nm random 40.Nd random lines from a file or random numbers 41.Sh SYNOPSIS 42.Nm 43.Op Fl er |
44.Op Fl f Ar filename |
45.Op Ar denominator 46.Sh DESCRIPTION 47.Nm Random |
48has two distinct modes of operations. The default is to read in lines 49from stdin and randomly write them out to stdout with a probability of 501 / 51.Ar denominator . 52The default |
53.Ar denominator |
54for this mode of operation is 2, giving each line a 50/50 chance of 55being displayed. |
56.Pp |
57The second mode of operation is to read in a file from 58.Ar filename 59and randomize the contents of the file and send it back out to stdout. 60The contents can be randomized based off of newlines or based off of 61space characters as determined by 62.Xr isspace 3 . 63The default 64.Ar denominator 65for this mode of operation is 1, which gives each line a chance to be 66displayed, but in a 67.Xr random 3 68order. 69.Pp |
70The options are as follows: 71.Bl -tag -width Ds 72.It Fl e 73If the 74.Fl e 75option is specified, 76.Nm 77does not read or write anything, and simply exits with a random 78exit value of 0 to 79.Ar denominator 80\&- 1, inclusive. |
81.It Fl f Ar filename 82The 83.Fl f 84option is used to specify the 85.Ar filename 86to read from. stdin is used if the filename is set to "-". 87.It Fl l 88Randomize the input via newlines (the default). |
89.It Fl r 90The 91.Fl r 92option guarantees that the output is unbuffered. |
93.It Fl u 94Tells 95.Xr random 6 96not to select the same line or word from a file more than once (the 97default). This does not guarantee uniqueness if there are two of the 98same tokens from the input, but it does prevent selecting the same 99token more than once. 100.It Fl U 101Tells 102.Xr random 6 103that it is okay for it to reuse any given line or word when creating a 104randomized output. 105.It Fl w 106Randomize words separated by 107.Xr isspace 3 108instead of newlines. |
109.El 110.Sh SEE ALSO |
111.Xr fortune 6 , 112.Xr random 3 113.Sh BUGS 114There is no index used when printing out tokens from the list which 115makes rather slow for large files (10MB+). If this were used in 116performance sensitive areas, I'd do something about it. For smaller 117files, however, it should still be quite fast and efficient. 118.Sh HISTORY 119Original 120.Xr random 6 121game was brought in from BSD 4.4 Lite by jkh in 1994. The 122functionality to randomizing lines and words was added in 2003 by 123seanc. |