スポンサーリンク

JOT(1) FreeBSD 一般コマンドマニュアル JOT(1)

名称

jot − 連続ないしは、乱数データを出力する

書式

jot [−cnr] [−b word] [−w word] [−s string] [−p precision] [reps [begin [end [s]]]]

解説

jot ユーティリティは、増加・減少・ランダム・冗長データを通常は数字で、一 行毎に出力します。

以下のようなオプションが利用できます。

       −r

デフォルトの連続したデータの代わりに、乱数を作成します。

−b word
word
を、繰り返し出力するだけです。

−w word
word
のあとに、生成されたデータを付け加え、出力します。 8 進・16 進・指数・ASCII・0 で埋めた表示・右詰め表現などは、適切な printf(3) 記法を word 中で指定することで、可能です。この場合、 データは追加されるというよりも、挿入されると考えてください。

−c
これは、 −w %c の省略形です。

−s string
string
で分けられたデータを出力します。普通は、改行文字がデータを 分割します。

−n
通常追加される、最後の改行を出力しません。

−p precision
整数 precision で指定されたデータの文字数もしくは桁数だけ表示しま す。 −p がない場合、精度値は beginend の引数の精度の大きい方 です。 −p オプションは、 −w に続く printf(3) 記法が指定されている 時には、上書きされます。

最後の 4 つの引数はそれぞれデータ数・下界・上界と、幅の大きさまたは、乱数 のための種です。少なくともどれか一つが指定されなければなりませんが、その 他の 3 つは引数として - を与えると、省略できます。これら 3 つの引数を指定 すれば、4 つ目が決まります。 4 つとも指定されて、 reps の与えられた値と、 計算された値とが相反する場合、小さい方を用います。指定された数が 3 つより 少ない場合には、 s を除いて、デフォルト値を左から右へ割り当てます。 s は、 beginend が共に指定された場合以外、デフォルト値が設定されます。

4 つの引数に対するデフォルトは、乱数が要求された時を除いて、それぞ れ、100, 1, 100, 1です。乱数の種 s はランダムに選択されます。 reps 引数 は、符号無し整数であると想定されています。 0 が与えられた場合は、無限回数 となります。 beginend は、実数、もしくは文字の場合は対応する ASCII 値 としてあたえられます。最後の引数は、実数でなければなりません。

乱数値は、 random(3) を使って得られます。名前 jot は、 APL 中の関数 iota の部分から来ています。

使用例

コマンド

jot 21 -1 1.00

は、−1 から 1 へ増加する等間隔の数字を 21 個出力します。 ASCII 文字集合 は、以下のようにします。

jot -c 128 0

xaa から xaz までの文字列は以下のようにします。

jot -w xa%c 26 a

20 個のランダムな 8 文字は以下のようにして作成します。

jot -r -c 160 a z | rs -g 0 8

無限に、 yes を出したい場合は、以下のようにします。

jot -b yes 0

ed(1) の置換コマンドを、30 回、2, 7, 12 行等のように (5 行毎に ) 適用する 場合の解答例は以下のようになります。

jot -w %ds/old/new/ 30 2 - 5

だぶりのある 9, 9, 8, 8, 7 の様な列は、以下のように適切にステップの大きさ を設定することで、実現できます。

jot - 9 0 -.5

ファイルが正確に 1024 バイトであるように作成するには、

jot -b x 512 > block

最後に、タブを 4 つのスペースに設定し、10 カラム目からはじまって、 132 カ ラム目で終るようにするには、以下のようにします。

expand -‘jot -s, - 10 132 4‘

80 文字以上の行を全て表示するには、以下を使ってください。

grep ‘jot -s "" -b . 80‘

診断

ユーティリティ jot は、成功すると 0 で、エラーがあった場合は >0 で終了し ます。次の診断メッセージは、特別な解説を要します:

illegal or unsupported format ’%s’ printf(3) 用に要求された変換書式指示 子は、

%[#][ ][{+,-}][0-9]*[.[0-9]*]?

の書式ではありませんでした。ここで ‘‘?’’ は

[l]{d,i,o,u,x}

または

{c,e,f,g,D,E,G,O,U,X}

のいずれかひとつです。

range error in conversion 表示すべき値は、要求された出力書式に関連付けら れたデータタイプの範囲外の結果になりました。

too many conversions 1 個しか許されないところを、複数の変換書式指示子が 指定されました。

関連項目

ed(1), expand(1), rs(1), yes(1), printf(3), random(3)

FreeBSD 10.0 June 6, 1993 FreeBSD 10.0

スポンサーリンク