xref: /netbsd/usr.bin/nl/nl.1 (revision bf9ec67e)
1.\"	$NetBSD: nl.1,v 1.6 2002/02/08 01:36:29 ross Exp $
2.\"
3.\" Copyright (c) 1999 The NetBSD Foundation, Inc.
4.\" All rights reserved.
5.\"
6.\" This code is derived from software contributed to The NetBSD Foundation
7.\" by Klaus Klein.
8.\"
9.\" Redistribution and use in source and binary forms, with or without
10.\" modification, are permitted provided that the following conditions
11.\" are met:
12.\" 1. Redistributions of source code must retain the above copyright
13.\"    notice, this list of conditions and the following disclaimer.
14.\" 2. Redistributions in binary form must reproduce the above copyright
15.\"    notice, this list of conditions and the following disclaimer in the
16.\"    documentation and/or other materials provided with the distribution.
17.\" 3. All advertising materials mentioning features or use of this software
18.\"    must display the following acknowledgement:
19.\"        This product includes software developed by the NetBSD
20.\"        Foundation, Inc. and its contributors.
21.\" 4. Neither the name of The NetBSD Foundation nor the names of its
22.\"    contributors may be used to endorse or promote products derived
23.\"    from this software without specific prior written permission.
24.\"
25.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
26.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
27.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
29.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35.\" POSSIBILITY OF SUCH DAMAGE.
36.\"
37.Dd February 15, 1999
38.Dt NL 1
39.Os
40.Sh NAME
41.Nm \&nl
42.Nd line numbering filter
43.Sh SYNOPSIS
44.Nm ""
45.Op Fl p
46.Bk -words
47.Op Fl b Ar type
48.Ek
49.Bk -words
50.Op Fl d Ar delim
51.Ek
52.Bk -words
53.Op Fl f Ar type
54.Ek
55.Bk -words
56.Op Fl h Ar type
57.Ek
58.Bk -words
59.Op Fl i Ar incr
60.Ek
61.Bk -words
62.Op Fl l Ar num
63.Ek
64.Bk -words
65.Op Fl n Ar format
66.Ek
67.Bk -words
68.Op Fl s Ar sep
69.Ek
70.Bk -words
71.Op Fl v Ar startnum
72.Ek
73.Bk -words
74.Op Fl w Ar width
75.Ek
76.Op Ar file
77.Sh DESCRIPTION
78The
79.Nm
80utility reads lines from the named
81.Ar file
82or the standard input if the
83.Ar file
84argument is ommitted,
85applies a configurable line numbering filter operation and writes the result
86to the standard output.
87.Pp
88The
89.Nm
90utility treats the text it reads in terms of logical pages.
91Unless specified otherwise, line numbering is reset at the start of each
92logical page.  A logical page consists of a header, a body and a footer
93section; empty sections are valid.  Different line numbering options are
94independently available for header, body and footer sections.
95.Pp
96The starts of logical page sections are signalled by input lines containing
97nothing but one of the following sequences of delimiter characters:
98.Pp
99.Bd -unfilled -offset indent
100.Bl -column "\e:\e:\e: " "header "
101.Em "Line	Start of"
102.It \e:\e:\e:	header
103.It \e:\e:	body
104.It \e:	footer
105.El
106.Ed
107.Pp
108If the input does not contain any logical page section signalling directives,
109the text being read is assumed to consist of a single logical page body.
110.Pp
111The following options are available:
112.Bl -tag -width indent
113.It Fl b Ar type
114Specify the logical page body lines to be numbered.
115Recognized
116.Ar type
117arguments are:
118.Bl -tag -width pstringXX
119.It a
120Number all lines.
121.It t
122Number only non-empty lines.
123.It n
124No line numbering.
125.It p Ns Ar expr
126Number only those lines that contain the basic regular expression specified
127by
128.Ar expr .
129.El
130.Pp
131The default
132.Ar type
133for logical page body lines is t.
134.It Fl d Ar delim
135Specify the delimiter characters used to indicate the start of a logical
136page section in the input file.  At most two characters may be specified;
137if only one character is specified, the first character is replaced and the
138second character remains unchanged.
139The default
140.Ar delim
141characters are ``\e:''.
142.It Fl f Ar type
143Specify the same as
144.Fl b Ar type
145except for logical page footer lines.
146The default
147.Ar type
148for logical page footer lines is n.
149.It Fl h Ar type
150Specify the same as
151.Fl b Ar type
152except for logical page header lines.
153The default
154.Ar type
155for logical page header lines is n.
156.It Fl i Ar incr
157Specify the increment value used to number logical page lines.
158The default
159.Ar incr
160value is 1.
161.It Fl l Ar num
162If numbering of all lines is specified for the current logical section
163using the corresponding
164.Fl b
165a,
166.Fl f
167a
168or
169.Fl h
170a
171option,
172specify the number of adjacent blank lines to be considered as one.
173For example,
174.Fl l
1752 results in only the second adjacent blank line being numbered.
176The default
177.Ar num
178value is 1.
179.It Fl n Ar format
180Specify the line numbering output format.
181Recognized
182.Ar format
183arguments are:
184.Bl -tag -width lnXX -compact
185.It ln
186Left justified.
187.It rn
188Right justified, leading zeros suppressed.
189.It rz
190Right justified, leading zeros kept.
191.El
192.Pp
193The default
194.Ar format
195is rn.
196.It Fl p
197Specify that line numbering should not be restarted at logical page delimiters.
198.It Fl s Ar sep
199Specify the characters used in separating the line number and the corresponding
200text line.
201The default
202.Ar sep
203setting is a single tab character.
204.It Fl v Ar startnum
205Specify the initial value used to number logical page lines; see also the
206description of the
207.Fl p
208option.
209The default
210.Ar startnum
211value is 1.
212.It Fl w Ar width
213Specify the number of characters to be occupied by the line number;
214in case the
215.Ar width
216is insufficient to hold the line number, it will be truncated to its
217.Ar width
218least significant digits.
219The default
220.Ar width
221is 6.
222.El
223.Sh EXIT STATUS
224The
225.Nm
226utility exits 0 on success, and \*[Gt]0 if an error occurs.
227.Sh SEE ALSO
228.Xr pr 1
229.Sh STANDARDS
230The
231.Nm
232utility conforms to
233.St -xpg4.2
234with the exception of not supporting the intermingling of the
235.Ar file
236operand with the options, which the standard considers an obsolescent feature
237to be removed from a further issue.
238.Sh HISTORY
239The
240.Nm
241utility first appeared in
242.At V.2 .
243