8db8a33bb9
aren't allowed and the right casts can be used for printf() statements. Document the conversion specifier limitations and the fact that arithmetic overflow causes a fatal error. PR: 12611 Reported by: Frode Vatvedt Fjeld <frodef@acm.org> Reviewed by: bde
208 lines
5.7 KiB
Groff
208 lines
5.7 KiB
Groff
.\" Copyright (c) 1993
|
|
.\" 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 acknowledgement:
|
|
.\" 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.
|
|
.\"
|
|
.\" @(#)jot.1 8.1 (Berkeley) 6/6/93
|
|
.\" $Id: jot.1,v 1.5 1999/07/12 20:23:37 nik Exp $
|
|
.\"
|
|
.Dd June 6, 1993
|
|
.Dt JOT 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm jot
|
|
.Nd print sequential or random data
|
|
.Sh SYNOPSIS
|
|
.Nm jot
|
|
.Op Fl cnr
|
|
.Op Fl b Ar word
|
|
.Op Fl w Ar word
|
|
.Op Fl s Ar string
|
|
.Op Fl p Ar precision
|
|
.Op reps Op begin Op end Op s
|
|
.Sh DESCRIPTION
|
|
.Nm Jot
|
|
is used to print out increasing, decreasing, random,
|
|
or redundant data, usually numbers, one per line.
|
|
.Pp
|
|
The following options are available:
|
|
.Bl -tag -width indent
|
|
.It Fl r
|
|
Generate random data instead of the default sequential data.
|
|
.It Fl b Ar word
|
|
Just print
|
|
.Ar word
|
|
repetitively.
|
|
.It Fl w Ar word
|
|
Print
|
|
.Ar word
|
|
with the generated data appended to it.
|
|
Octal, hexadecimal, exponential,
|
|
.Tn ASCII ,
|
|
zero padded,
|
|
and right-adjusted representations
|
|
are possible by using the appropriate
|
|
.Xr printf 3
|
|
conversion specification inside
|
|
.Ar word ,
|
|
in which case the data are inserted rather than appended.
|
|
.It Fl c
|
|
This is an abbreviation for
|
|
.Fl w Ar %c .
|
|
.It Fl s Ar string
|
|
Print data separated by
|
|
.Ar string .
|
|
Normally, newlines separate data.
|
|
.It Fl n
|
|
Do not print the final newline normally appended to the output.
|
|
.It Fl p Ar precision
|
|
Print only as many digits or characters of the data
|
|
as indicated by the integer
|
|
.Ar precision .
|
|
In the absence of
|
|
.Fl p ,
|
|
the precision is the greater of the precisions of
|
|
.Ar begin
|
|
and
|
|
.Ar end .
|
|
The
|
|
.Fl p
|
|
option is overridden by whatever appears in a
|
|
.Xr printf 3
|
|
conversion following
|
|
.Fl w .
|
|
.El
|
|
.Pp
|
|
The last four arguments indicate, respectively,
|
|
the number of data, the lower bound, the upper bound,
|
|
and the step size or, for random data, the seed.
|
|
While at least one of them must appear,
|
|
any of the other three may be omitted, and
|
|
will be considered as such if given as
|
|
.Fl "" .
|
|
Any three of these arguments determines the fourth.
|
|
If four are specified and the given and computed values of
|
|
.Ar reps
|
|
conflict, the lower value is used.
|
|
If fewer than three are specified, defaults are assigned
|
|
left to right, except for
|
|
.Ar s ,
|
|
which assumes its default unless both
|
|
.Ar begin
|
|
and
|
|
.Ar end
|
|
are given.
|
|
.Pp
|
|
Defaults for the four arguments are, respectively,
|
|
100, 1, 100, and 1, except that when random data are requested,
|
|
the seed,
|
|
.Ar s ,
|
|
is picked randomly.
|
|
.Ar Reps
|
|
is expected to be an unsigned integer,
|
|
and if given as zero is taken to be infinite.
|
|
.Ar Begin
|
|
and
|
|
.Ar end
|
|
may be given as real numbers or as characters
|
|
representing the corresponding value in
|
|
.Tn ASCII .
|
|
The last argument must be a real number.
|
|
.Pp
|
|
Random numbers are obtained through
|
|
.Xr random 3 .
|
|
The name
|
|
.Nm
|
|
derives in part from
|
|
.Nm iota ,
|
|
a function in APL.
|
|
.Sh EXAMPLES
|
|
The command
|
|
.Dl jot 21 -1 1.00
|
|
.Pp
|
|
prints 21 evenly spaced numbers increasing from -1 to 1.
|
|
The
|
|
.Tn ASCII
|
|
character set is generated with
|
|
.Dl jot -c 128 0
|
|
.Pp
|
|
and the strings xaa through xaz with
|
|
.Dl jot -w xa%c 26 a
|
|
.Pp
|
|
while 20 random 8-letter strings are produced with
|
|
.Dl "jot -r -c 160 a z | rs -g 0 8"
|
|
.Pp
|
|
Infinitely many
|
|
.Em yes Ns 's
|
|
may be obtained through
|
|
.Dl jot -b yes 0
|
|
.Pp
|
|
and thirty
|
|
.Xr ed 1
|
|
substitution commands applying to lines 2, 7, 12, etc. is
|
|
the result of
|
|
.Dl jot -w %ds/old/new/ 30 2 - 5
|
|
.Pp
|
|
The stuttering sequence 9, 9, 8, 8, 7, etc. can be
|
|
produced by suitable choice of step size,
|
|
as in
|
|
.Dl jot - 9 0 -.5
|
|
.Pp
|
|
and a file containing exactly 1024 bytes is created with
|
|
.Dl jot -b x 512 > block
|
|
.Pp
|
|
Finally, to set tabs four spaces apart starting
|
|
from column 10 and ending in column 132, use
|
|
.Dl expand -`jot -s, - 10 132 4`
|
|
.Pp
|
|
and to print all lines 80 characters or longer,
|
|
.Dl grep `jot -s \&"\&" -b \&. 80`
|
|
.Pp
|
|
.Sh SEE ALSO
|
|
.Xr ed 1 ,
|
|
.Xr expand 1 ,
|
|
.Xr rs 1 ,
|
|
.Xr yes 1 ,
|
|
.Xr printf 3 ,
|
|
.Xr random 3
|
|
.Sh BUGS
|
|
Conversion format specifiers for
|
|
.Xr printf 3
|
|
are limited to those of the form
|
|
.Dl %[#][ ][{+,-}][0-9]*[.[0-9]*]?
|
|
where
|
|
.Dq ?
|
|
must be one of
|
|
.Dl [l]{d,i,o,u,x}
|
|
or
|
|
.Dl {c,e,f,g,D,E,G,O,U,X}
|
|
.Pp
|
|
No bounds-checking is performed on numeric values, so arithmetic overflow
|
|
will cause a fatal error.
|