nl - line numbering filter
Synopsis
Description
Environment Variables
Examples
See Also
Notes
nl [-htype] [-btype] [-ftype] [-vstart#] [-iincr] [-p] [-lnum] [-wwidth] [-nformat] [-ddelim] [file]
The nl command prints a file, or, when no file argument is given, standard input, preceding lines with line numbers on the left.Lines with special content are taken as page delimiters. Three parts of pages are distinguished: header, body and footer. Each part is started when a line consisting only of the following characters appears in input:
Line numbers are reset each time a header begins. The start of the file is considered a body part until a line marking another part appears.
Line contents Start of \:\:\: header \:\: body \: footer
The following options alter the behavior of nl:
-btype Specifies which lines in a body part are numbered, where type is one of the following:
a Number all lines, unless otherwise specified by the -l option. t Number all non-empty lines. n Number no lines. pstring Number all lines that match the regular expression string. Regular expressions are as in ed(1); /usr/5bin/nl uses simple regular expressions, /usr/5bin/posix/nl, /usr/5bin/posix2001/nl, and /usr/5bin/s42/nl use basic regular expressions. The default is t. -ddelim Change the special characters that delimit parts of a page to the two characters in delim. If delim consists of only one character, the second character remains the default, ':'. -ftype Specifies which lines in a footer part are numbered, where type has the format described for -b. The default is n. -htype Specifies which lines in a header part are numbered, where type has the format described for -b. The default is n. -iincr Line numbers are increased by incr, which defaults to 1. -lnum For the -ba, -fa, and -ha options, specifies which line of adjacent blank lines is printed. The default is 1 (print all blank lines). -nformat Sets the format of line numbers, where format is one of:
ln left-justified, preceded by blanks rn right-justified, preceded by blanks rz right-justified, preceded by zeros The default is rn. -p Line numbers are not reset at the start of each header when this option is present. -ssep Sets the string that separates line number and line content in output, default is a tabulator. -vstart# Each page is numbered starting at start#, which defaults to 1. -wwidth Sets the width of line numbers. If a number has fewer digits than width, it is padded as described for the -n option; if it has more digits, only the last width digits are printed. The default width is 6. The file argument can appear between options. For /usr/5bin/nl and /usr/5bin/s42/nl, option and option argument must not be separated; if an option is not immediately followed by its argument, the default value is used. /usr/5bin/posix/nl and /usr/5bin/posix2001/nl require an option argument and accept it regardless of space between option and argument.
LANG, LC_ALL See locale(7). LC_COLLATE Affects the collation order for range expressions, equivalence classes, and collation symbols in basic regular expressions. LC_CTYPE Determines the mapping of bytes to characters.
To number all lines in a file, effectively disabling header and footer recognition since no line can contain a second newline character and thus the condition is never met:Note that there is no white space other than the newline character between ' '.
nl -ba -d' ' file
To number all lines that are not empty and contain at least one non-blank character:
The characters between [ ] are: a circumflex, a space, and a tabulator.
nl -bp'[^ ]' file
ed(1), pr(1), locale(7)
Since the default width causes line numbers to be truncated if they consist of more than six digits, the -w option should be used to increase this value if higher numbers are to be expected.
Heirloom Toolchest | NL (1) | 8/14/05 |