Manual Page Result
0
Command: jot | Section: 1 | Source: OpenBSD | File: jot.1
JOT(1) FreeBSD General Commands Manual JOT(1)
NAME
jot - print sequential or random data
SYNOPSIS
jot [-cnr] [-b word] [-p precision] [-s string] [-w word]
[reps [begin [end [step]]]]
DESCRIPTION
jot is used to print out increasing, decreasing, random, or redundant
data, usually numbers, one per line.
The options are as follows:
-b word Just print word repetitively. Overrides earlier -b, -c,
and -w.
-c This is an abbreviation for -w %c. Overrides earlier -b
and -w.
-n Do not print the final newline normally appended to the
output.
-p precision Print only as many digits or characters of the data as
indicated by the integer precision. In the absence of -p,
the precision is the greater of the numbers begin and end.
The -p option is overridden by whatever appears in a
printf(3) conversion following -w.
-r Generate random data. By default, jot generates sequential
data.
-s string Print data separated by string. Normally, newlines
separate data.
-w word Print word with the generated data appended to it. Octal,
hexadecimal, exponential, ASCII, zero-padded, and right-
adjusted representations are possible by using the
appropriate printf(3) conversion specification inside word,
in which case the data is inserted rather than appended.
Overrides earlier -b, -c, and -w.
The last four arguments specify the length of the output sequence, its
start and end points, and the step size. Any three of these arguments
determine the fourth. If the given and computed values for reps
conflict, the lower value is used.
Arguments can be omitted by specifying a `-'. The default values for
reps, begin, end, and step are 100, 1, 100, and 1, respectively. Omitted
values are computed if possible or assume the default. A special case
arises if only begin and end are specified: if begin is greater than end
then step is set to -1, otherwise it is set to 1; afterwards reps is
computed.
reps is expected to be an unsigned integer, and if given as zero is taken
to be infinite. begin and end may be given as real numbers or as
characters representing the corresponding value in ASCII. The last
argument must be a real number.
Random numbers are obtained through arc4random(3). Historical versions
of jot used step to seed the random number generator. This is no longer
supported. The name jot derives in part from "iota", a function in APL.
Rounding and truncation
The jot utility uses double precision floating point arithmetic
internally. Before printing a number, it is converted depending on the
output format used.
If no output format is specified or the output format is a floating point
format (`f', `e', `g', `E', or `G'), the value is rounded using the
printf(3) function, taking into account the requested precision.
If the output format is an integer format (`c', `d', `o', `x', `u', `D',
`O', `X', `U', or `i'), the value is converted to an integer value by
truncation.
As an illustration, consider the following command:
$ jot 6 1 10 0.5
1
2
2
2
3
4
By requesting an explicit precision of 1, the values generated before
rounding can be seen. The .5 values are rounded down if the integer part
is even, up otherwise.
$ jot -p 1 6 1 10 0.5
1.0
1.5
2.0
2.5
3.0
3.5
By offsetting the values slightly, the values generated by the following
command are always rounded down:
$ jot -p 0 6 .9999999999 10 0.5
1
1
2
2
3
3
Another way of achieving the same result is to force truncation by
specifying an integer format:
$ jot -w %d 6 1 10 0.5
EXAMPLES
Print 21 evenly spaced numbers increasing from -1 to 1:
$ jot 21 -1 1.00
Generate the ASCII character set:
$ jot -c 128 0
Generate the strings xaa through xaz:
$ jot -w xa%c 26 a
Generate 20 random 8-letter strings:
$ jot -r -c 160 a z | rs -g0 0 8
Infinitely many yes(1)'s may be obtained through:
$ jot -b yes 0
Thirty ed(1) substitution commands applying to lines 2, 7, 12, etc. is
the result of:
$ jot -w %ds/old/new/ 30 2 - 5
Create a file containing exactly 1024 bytes:
$ jot -b x 512 > block
To set tabs four spaces apart starting from column 10 and ending in
column 132, use:
$ expand -`jot -s, - 10 132 4`
To print all lines 80 characters or longer:
$ grep `jot -s "" -b. 80`
SEE ALSO
ed(1), expand(1), rs(1), yes(1), arc4random(3), printf(3)
HISTORY
The jot utility first appeared in 4.2BSD.
AUTHORS
John A. Kunze
FreeBSD 14.1-RELEASE-p8 August 13, 2021 FreeBSD 14.1-RELEASE-p8