nl is a Unix utility for numbering lines, either from a file or from standard input, reproducing output on standard output.

History

is part of the X/Open Portability Guide since issue 2 of 1987. It was inherited into the first version of POSIX.1 and the Single Unix Specification. It first appeared in System V release 2.

The version of <code>nl</code> bundled in GNU coreutils was written by Scott Bartram and David MacKenzie.

The command is available as a separate package for Microsoft Windows as part of the UnxUtils collection of native Win32 ports of common GNU Unix-like utilities.

Syntax

The command has a number of switches:

  • a - number all lines
  • t - number lines with printable text only
  • n - no line numbering
  • pstring - number only those lines containing the regular expression defined in the string supplied.

The default applied switch is t.

nl also supports some command line options.

Example

<syntaxhighlight lang="bash">

$ nl tf

1 echo press cr

2 read cr

3 done

</syntaxhighlight>

The following example numbers only the lines that begin with a capital letter A (matching on the regular expression /^A/). filename is optional.

<syntaxhighlight lang="console">

$ nl -b p^A filename

apple

1 Apple

BANANA

2 Allspice

strawberry

</syntaxhighlight>

It can be useful as an alternative to :

<syntaxhighlight lang="console">

$ cat somefile

aaaa

bbbb

cccc

dddc

$ nl -ba somefile | grep cccc

3 cccc

</syntaxhighlight>

See also

  • wc (Unix) – the word count command
  • cat (Unix) – concatenate command (-n flag is equivalent to nl -a)
  • List of Unix commands

References