.\" Copyright (c) 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgment: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)random.6 8.2 (Berkeley) 3/31/94 .\" %FreeBSD: src/games/random/random.6,v 1.7 2003/02/23 01:44:14 ru Exp % .\" $FreeBSD$ .\" .Dd February 8, 2003 .Dt RANDOM 6 .Os .Sh 名称 .Nm random .Nd ファイルからのランダムな行選択、あるいは乱数 .Sh 書式 .Nm .Op Fl elrUuw .Op Fl f Ar filename .Op Ar denominator .Sh 解説 .Nm は 2 つの異なる動作モードがあります。 デフォルトは、標準入力の行を読み取り、 1 / .Ar denominator の確率でそれらを標準出力へ書き込むことです。 この動作モードでのデフォルトの .Ar denominator は 2 であり、各行が表示される確率は 50/50 です。 .Pp 第 2 の動作モードは、 .Ar filename からファイルを読み取り、ファイルの中身をかき混ぜ、 これを標準出力へ送るというものです。 ファイル内容は、改行または .Xr isspace 3 で判定される空白文字をもとに、かき混ぜられます。 この動作モードでのデフォルトの .Ar denominator は 1 であり、各行は表示されますが .Xr random 3 順となります。 .Pp オプションは以下の通りです。 .Bl -tag -width Ds .It Fl e .Fl e オプションが指定されていると、 .Nm は何も読み書きせず、 0 から .Ar denominator \&- 1 までの整数からランダムに選んだ値を返り値として そのまま終了します。 .It Fl f Ar filename .Fl f オプションは、読み取る .Ar filename を指定するために使用されます。 .Ar filename が .Sq Fl の場合、標準入力が使用されます。 .It Fl l 改行で入力をかき混ぜます (デフォルト)。 .It Fl r .Fl r オプションは、出力がバッファリングされないことを保証します。 .It Fl U かき混ぜた出力を作成するときに、同じ行や語を再利用して良いことを .Xr random 6 に指示します。 .It Fl u 同じ行または語をファイルから選択しないよう .Xr random 6 に指示します (デフォルト)。 入力に同じトークンが複数個ある場合には一意性を保証しませんが、 同じトークンが複数回選択されることは妨げます。 .It Fl w 改行ではなく、 .Xr isspace 3 で区切られる語を、かき混ぜます。 .El .Sh 関連項目 .Xr random 3 , .Xr fortune 6 .Sh バグ トークン表示時にはインデックスを使用していません。 このため、大きなファイル (10MB+) では遅くなるでしょう。 性能の影響を受ける領域でこれを使用するのでしたらば、工夫したでしょう。 しかしながら、小さなファイルに対しては十分に高速で効率的です。 .Sh 歴史 行や語をかき混ぜる機能は、2003 に .An "Sean Chittenden" Aq seanc@FreeBSD.org が追加しました。