---
name: "nl"
section: "1"
platform: "linux"
package: "coreutils"
version: "9.12-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/nl"
---

# nl(1)

number lines of files

## NAME

nl - number lines of files

## SYNOPSIS

**nl** \[*OPTION*\]... \[*FILE*\]...

## DESCRIPTION

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

- **--help**

  display this help and exit

- **--version**

  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 ':'.  As a GNU extension one can specify more than two characters, and also specifying the empty string (**-d** '') disables section matching.

STYLE is one of:

- a

  number all lines

- t

  number only nonempty lines

- n

  number no lines

- pBRE

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

FORMAT is one of:

- ln

  left justified, no leading zeros

- rn

  right justified, no leading zeros

- rz

  right justified, leading zeros

## AUTHOR

Written by Scott Bartram and David MacKenzie.

## REPORTING BUGS

Report bugs to: \<bug-coreutils@gnu.org\>.\
 Report any translation bugs to: \<https://translationproject.org/team/\>.\
 GNU coreutils home page: \<https://www.gnu.org/software/coreutils/\>\
 General help using GNU software: \<https://www.gnu.org/gethelp/\>

## COPYRIGHT

Copyright © 2026 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later \<https://gnu.org/licenses/gpl.html\>.\
 This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

## SEE ALSO

Full documentation \<https://www.gnu.org/software/coreutils/nl\>\
 or available locally via: info '(coreutils) nl invocation'
