---
name: "seq"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/seq"
---

# seq(1)

print sequences of numbers

## NAME

**seq** – print sequences of numbers

## SYNOPSIS

**seq** \[**-w**\] \[**-f** *format*\] \[**-s** *string*\] \[*first* \[*incr*\]\] *last*

## DESCRIPTION

The **seq** utility prints a sequence of numbers, one per line by default, from *first* (default 1) to as near *last* as possible, in increments of *incr* (default 1). When *first* is larger than *last*, the default *incr* is -1.

All numbers are interpreted as floating point.

Normally, integer values are printed as decimal integers.

The **seq** utility accepts the following options:

- **-f** *format*, **--format** *format*

  Use a [printf(3)](/printf/3.md) style *format* to print each number. Only the **A**, **a**, **E**, **e**, **F**, **f**, **G**, **g**, and **%** conversion characters are valid, along with any optional flags and an optional numeric minimum field width or precision. The *format* can contain character escape sequences in backslash notation as defined in ANSI X3.159-1989 (“ANSI C89”). The default is **%g**.

- **-s** *string*, **--separator** *string*

  Use *string* to separate numbers. The *string* can contain character escape sequences in backslash notation as defined in ANSI X3.159-1989 (“ANSI C89”). The default is **\\n**.

- **-w**, **--fixed-width**

  Equalize the widths of all numbers by padding with zeros as necessary. This option has no effect with the **-f** option. If any sequence numbers will be printed in exponential notation, the default conversion is changed to **%e**.

- **--help**

  Display the program usage and exit.

- **--version**

  Display the version number and exit.

## EXIT STATUS

The **seq** utility exits 0 on success, and \>0 if an error occurs.

## EXAMPLES

Generate a sequence from 1 to 3 (inclusive) with a default increment of 1:

```
$ seq 1 3
1
2
3
```

Generate a sequence from 3 to 1 (inclusive) with a default increment of -1:

```
$ seq 3 1
3
2
1
```

Generate a sequence from 0 to 0.1 (inclusive) with an increment of 0.05 and padding with leading zeroes:

```
$ seq -w 0 .05 .1
0.00
0.05
0.10
```

Generate a sequence from 1 to 3 (inclusive) with a default increment of 1, and a custom separator string:

```
$ seq -s "," 1 3
1,2,3
```

Generate a sequence from 1 to 2 (inclusive) with an increment of 0.2 and print the results with two digits after the decimal point (using a [printf(3)](/printf/3.md) style format):

```
$ seq -f %.2f 1 0.2 2
1.00
1.20
1.40
1.60
1.80
2.00
```

## SEE ALSO

[jot(1)](/jot/1.md), [printf(1)](/printf/1.md), [printf(3)](/printf/3.md)

## HISTORY

A **seq** command appeared in Version 8 AT&T UNIX. This version of **seq** appeared in NetBSD 3.0 and was ported to OpenBSD 7.1.

## BUGS

The **-w** option does not handle the transition from pure floating point to exponent representation very well. The **seq** utility is not bug for bug compatible with other implementations.
