Provided by: manpages-posix_2.16-1_all bug

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  shall read lines from the named file or the standard input if no file is
       named and shall reproduce the lines to standard output. Lines shall  be  numbered  on  the
       left.  Additional  functionality may be provided in accordance with the command options in
       effect.

       The nl utility views the text it reads in terms of logical pages.  Line numbering shall be
       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 (for example, no numbering of header
       and footer lines while numbering blank lines only in the body).

       The starts of logical page sections shall be signaled by input  lines  containing  nothing
       but the following delimiter characters:

                                           Line     Start of
                                           \:\:\:   Header
                                           \:\:     Body
                                           \:       Footer

       Unless  otherwise  specified,  nl  shall assume the text being read is in a single logical
       page body.

OPTIONS

       The nl utility shall conform to  the  Base  Definitions  volume  of  IEEE Std 1003.1-2001,
       Section 12.2, Utility Syntax Guidelines.  Only one file can be named.

       The following options shall be supported:

       -b  type
              Specify which logical page body lines shall be numbered. Recognized types and their
              meaning are:

       a
              Number all lines.

       t
              Number only non-empty lines.

       n
              No line numbering.

       pstring
              Number only lines that contain the basic regular expression specified in string.

       The default type for logical page body shall be t (text lines numbered).

       -d  delim
              Specify the delimiter characters that indicate the start of a logical page section.
              These  can  be  changed  from  the  default  characters  "\:" to two user-specified
              characters. If only one character is entered, the second character shall remain the
              default character ':' .

       -f  type
              Specify  the  same as b type except for footer. The default for logical page footer
              shall be n (no lines numbered).

       -h  type
              Specify the same as b type except for header. The default  type  for  logical  page
              header shall be n (no lines numbered).

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

       -l  num
              Specify the number of blank lines to  be  considered  as  one.  For  example,  -l 2
              results  in  only the second adjacent blank line being numbered (if the appropriate
              -h a, -b a, or -f a option is set). The default shall be 1.

       -n  format
              Specify the line numbering format.  Recognized  values  are:  ln,  left  justified,
              leading  zeros suppressed; rn, right justified, leading zeros suppressed; rz, right
              justified, leading zeros kept. The default format shall be rn (right justified).

       -p     Specify that 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 shall be a <tab>.

       -v  startnum
              Specify  the  initial value used to number logical page lines. The default shall be
              1.

       -w  width
              Specify the number of characters to be used for the line number. The default  width
              shall be 6.

OPERANDS

       The following operand shall be supported:

       file   A pathname of a text file to be line-numbered.

STDIN

       The standard input is a text file that is used if no file operand is given.

INPUT FILES

       The input file named by the file operand is a text file.

ENVIRONMENT VARIABLES

       The following environment variables shall affect the execution of nl:

       LANG   Provide  a  default  value for the internationalization variables that are unset or
              null. (See the  Base  Definitions  volume  of  IEEE Std 1003.1-2001,  Section  8.2,
              Internationalization Variables for the precedence of internationalization variables
              used to determine the values of locale categories.)

       LC_ALL If set to  a  non-empty  string  value,  override  the  values  of  all  the  other
              internationalization variables.

       LC_COLLATE

              Determine  the  locale  for the behavior of ranges, equivalence classes, and multi-
              character collating elements within regular expressions.

       LC_CTYPE
              Determine the locale for the interpretation of sequences of bytes of text  data  as
              characters  (for  example,  single-byte  as  opposed  to  multi-byte  characters in
              arguments and input files),  the  behavior  of  character  classes  within  regular
              expressions,  and  for  deciding which characters are in character class graph (for
              the -b t, -f t, and -h t options).

       LC_MESSAGES
              Determine the locale that should be used to  affect  the  format  and  contents  of
              diagnostic messages written to standard error.

       NLSPATH
              Determine the location of message catalogs for the processing of LC_MESSAGES .

ASYNCHRONOUS EVENTS

       Default.

STDOUT

       The standard output shall be a text file in the following format:

              "%s%s%s", <line number>, <separator>, <input line>

       where <line number> is one of the following numeric formats:

       %6d    When the rn format is used (the default; see -n).

       %06d   When the rz format is used.

       %-6d   When the ln format is used.

       <empty>
              When line numbers are suppressed for a portion of the page; the <separator> is also
              suppressed.

       In the preceding list, the number 6 is the default width; the -w option  can  change  this
       value.

STDERR

       The standard error shall be used only for diagnostic messages.

OUTPUT FILES

       None.

EXTENDED DESCRIPTION

       None.

EXIT STATUS

       The following exit values shall be returned:

        0     Successful completion.

       >0     An error occurred.

CONSEQUENCES OF ERRORS

       Default.

       The following sections are informative.

APPLICATION USAGE

       In  using the -d delim option, care should be taken to escape characters that have special
       meaning to the command interpreter.

EXAMPLES

       The command:

              nl -v 10 -i 10 -d \!+ file1

       numbers file1 starting at line number 10  with  an  increment  of  10.  The  logical  page
       delimiter  is  "!+"  .  Note  that  the  '!' has to be escaped when using csh as a command
       interpreter because of its history substitution syntax. For ksh and sh the escape  is  not
       necessary, but does not do any harm.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       pr

COPYRIGHT

       Portions  of  this  text  are  reprinted  and  reproduced in electronic form from IEEE Std
       1003.1, 2003 Edition, Standard for Information Technology  --  Portable  Operating  System
       Interface  (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by
       the Institute of Electrical and Electronics Engineers, Inc and  The  Open  Group.  In  the
       event  of  any  discrepancy  between this version and the original IEEE and The Open Group
       Standard, the original IEEE and The Open Group  Standard  is  the  referee  document.  The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .