# nl(1) - man - phpman

> **TLDR:** Number lines from a file or from `stdin`.
>
- Number non-blank lines in a file:
  `nl {{path/to/file}}`
- Read from `stdin`:
  `{{command}} | nl -`
- Number [a]ll [b]ody lines including blank lines or do [n]ot number [b]ody lines:
  `nl -b {{a|n}} {{path/to/file}}`
- Number only the [b]ody lines that match a basic `regex` (BRE) [p]attern:
  `nl -b p'FooBar[0-9]' {{path/to/file}}`
- Use a specific [i]ncrement for line numbering:
  `nl -i {{increment}} {{path/to/file}}`
- Specify the line numbering format to [r]ight or [l]eft justified, keeping leading [z]eros or [n]ot:
  `nl -n {{rz|ln|rn}}`
- Specify the line numbering's [w]idth (6 by default):
  `nl -w {{col_width}} {{path/to/file}}`
- Use a specific string to [s]eparate the line numbers from the lines (`TAB` by default):
  `nl -s {{separator}} {{path/to/file}}`

*Source: tldr-pages*

---

[NL(1)](https://www.chedong.com/phpMan.php/man/NL/1/markdown)                                       User Commands                                      [NL(1)](https://www.chedong.com/phpMan.php/man/NL/1/markdown)



## 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
              use STYLE for numbering body lines

### -d --section-delimiter
              use CC for logical page delimiters

### -f --footer-numbering
              use STYLE for numbering footer lines

### -h --header-numbering
              use STYLE for numbering header lines

### -i --line-increment
              line number increment at each line

### -l --join-blank-lines
              group of NUMBER empty lines counted as one

### -n --number-format
              insert line numbers according to FORMAT

### -p --no-renumber
              do not reset line numbers for each section

### -s --number-separator
              add STRING after (possible) line number

### -v --starting-line-number
              first line number for each section

### -w --number-width
              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 ':'.

       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
       GNU coreutils online help: <<https://www.gnu.org/software/coreutils/>>
       Report any translation bugs to <<https://translationproject.org/team/>>

## COPYRIGHT
       Copyright © 2020 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'



GNU coreutils 8.32                          January 2026                                       [NL(1)](https://www.chedong.com/phpMan.php/man/NL/1/markdown)
