nl — number lines of files

Examples (TL;DR)


nl [OPTION]... [FILE]...


Write each FILE to standard output, with line numbers added.

With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.

-b, --body-numbering=STYLE

use STYLE for numbering body lines

-d, --section-delimiter=CC

use CC for logical page delimiters

-f, --footer-numbering=STYLE

use STYLE for numbering footer lines

-h, --header-numbering=STYLE

use STYLE for numbering header lines

-i, --line-increment=NUMBER

line number increment at each line

-l, --join-blank-lines=NUMBER

group of NUMBER empty lines counted as one

-n, --number-format=FORMAT

insert line numbers according to FORMAT

-p, --no-renumber

do not reset line numbers for each section

-s, --number-separator=STRING

add STRING after (possible) line number

-v, --starting-line-number=NUMBER

first line number for each section

-w, --number-width=NUMBER

use NUMBER columns for line numbers


display this help and exit


output version information and exit

Default options are: -bt -d'\:' -fn -hn -i1 -l1 -n'rn' -s<TAB> -v1 -w6

CC are two delimiter characters used to construct logical page delimiters; a missing second character implies ':'.

STYLE is one of:


number all lines


number only nonempty lines


number no lines


number only lines that contain a match for the basic regular expression, BRE

FORMAT is one of:


left justified, no leading zeros


right justified, no leading zeros


right justified, leading zeros


Written by Scott Bartram and David MacKenzie.

Reporting Bugs

GNU coreutils online help: <>
Report any translation bugs to <>

See Also

Full documentation <>
or available locally via: info '(coreutils) nl invocation'


October 2019 GNU coreutils 8.31