Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NL(1)			    General Commands Manual			 NL(1)

NAME
       nl -- line numbering filter

SYNOPSIS
       nl  [-p]	 [-b  type]  [-d delim]	[-f type] [-h type] [-i	incr] [-l num]
	  [-n format] [-s sep] [-v startnum] [-w width]	[file]

DESCRIPTION
       The nl utility reads lines from the named file, applies a  configurable
       line  numbering filter operation, and writes the	result to the standard
       output.	If file	is a single dash (`-') or absent, nl  reads  from  the
       standard	input.

       The nl utility treats the text it reads in terms	of logical pages.  Un-
       less  specified otherwise, line numbering is reset at the start of each
       logical page.  A	logical	page consists of a header, a body and a	footer
       section;	empty sections are valid.  Different  line  numbering  options
       are independently available for header, body and	footer sections.

       The  starts  of logical page sections are signalled by input lines con-
       taining nothing but one of the following	sequences of delimiter charac-
       ters:

	     Line      Start of
	     \:\:\:    header
	     \:\:      body
	     \:	       footer

       If the input does not contain any logical page section  signalling  di-
       rectives, the text being	read is	assumed	to consist of a	single logical
       page body.

       The following options are available:

       -b type	    Specify  the logical page body lines to be numbered.  Rec-
		    ognized type arguments are:

		    a	    Number all lines.

		    t	    Number only	non-empty lines.

		    n	    No line numbering.

		    pexpr   Number only	those lines  that  contain  the	 basic
			    regular expression specified by expr.

		    The	default	type for logical page body lines is t.

       -d delim	    Specify  the  delimiter  characters	 used  to indicate the
		    start of a logical page section in	the  input  file.   At
		    most  two characters may be	specified; if only one charac-
		    ter	is specified, the first	character is replaced and  the
		    second  character  remains	unchanged.   The default delim
		    characters are "\:".

       -f type	    Specify the	same as	-b type	except for logical page	footer
		    lines.  The	default	type for logical page footer lines  is
		    n.

       -h type	    Specify the	same as	-b type	except for logical page	header
		    lines.   The default type for logical page header lines is
		    n.

       -i incr	    Specify the	increment value	used to	 number	 logical  page
		    lines.  The	default	incr value is 1.

       -l num	    If	numbering  of  all  lines is specified for the current
		    logical section using the corresponding -b a, -f a or -h a
		    option, specify the	number of adjacent blank lines	to  be
		    considered	as one.	 For example, -l 2 results in only the
		    second adjacent blank line being  numbered.	  The  default
		    num	value is 1.

       -n format    Specify  the  line	numbering  output  format.  Recognized
		    format arguments are:
		    ln	    Left justified.
		    rn	    Right justified, leading zeros suppressed.
		    rz	    Right justified, leading zeros kept.

		    The	default	format is rn.

       -p	    Specify that line numbering	should	not  be	 restarted  at
		    logical page delimiters.

       -s sep	    Specify  the characters used in separating the line	number
		    and	the corresponding text line.  The default sep  setting
		    is a single	tab character.

       -v startnum  Specify  the  initial  value  used	to number logical page
		    lines; see also the	description of the -p option.  The de-
		    fault startnum value is 1.

       -w width	    Specify the	number of characters to	 be  occupied  by  the
		    line number; in case the width is insufficient to hold the
		    line  number, it will be truncated to its width least sig-
		    nificant digits.  The default width	is 6.

ENVIRONMENT
       The LANG, LC_ALL, LC_CTYPE and LC_COLLATE environment variables	affect
       the execution of	nl as described	in environ(7).

EXIT STATUS
       The nl utility exits 0 on success, and >0 if an error occurs.

EXAMPLES
       Number all non-blank lines:

	     $ echo -e "This is\n\n\na simple text" | nl
		  1  This is

		  2  a simple text

       Number  all  lines including blank ones,	with right justified line num-
       bers with leading zeroes, starting at 2,	with increment of 2 and	a cus-
       tom multi-character separator:

	     $ echo -e "This\nis\nan\n\n\nexample" | nl	-ba -n rz -i2 -s "->" -v2
	     000002->This
	     000004->is
	     000006->an
	     000008->
	     000010->
	     000012->example

       Number lines matching regular expression	for an i followed by either  m
       or n

	     $ echo -e "This is\na simple text\nwith multiple\nlines" |	nl -bp'i[mn]'
		     This is
		  1  a simple text
		     with multiple
		  2  lines

SEE ALSO
       jot(1), pr(1)

STANDARDS
       The nl utility conforms to IEEE Std 1003.1-2001 ("POSIX.1").

HISTORY
       The nl utility first appeared in	AT&T System III	UNIX.

BUGS
       Input lines are limited to LINE_MAX (2048) bytes	in length.

FreeBSD	13.2			 July 24, 2022				 NL(1)

NAME | SYNOPSIS | DESCRIPTION | ENVIRONMENT | EXIT STATUS | EXAMPLES | SEE ALSO | STANDARDS | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nl&sektion=1&manpath=FreeBSD+14.2-RELEASE+and+Ports>

home | help