xref: /openbsd-src/usr.bin/wc/wc.1 (revision 850e275390052b330d93020bf619a739a3c277ac)
1.\"	$OpenBSD: wc.1,v 1.18 2007/05/31 19:20:20 jmc Exp $
2.\"
3.\" Copyright (c) 1991, 1993
4.\"	The Regents of the University of California.  All rights reserved.
5.\"
6.\" This code is derived from software contributed to Berkeley by
7.\" the Institute of Electrical and Electronics Engineers, Inc.
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. Neither the name of the University nor the names of its contributors
18.\"    may be used to endorse or promote products derived from this software
19.\"    without specific prior written permission.
20.\"
21.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31.\" SUCH DAMAGE.
32.\"
33.\"     from: @(#)wc.1	8.2 (Berkeley) 4/19/94
34.\"
35.Dd $Mdocdate: May 31 2007 $
36.Dt WC 1
37.Os
38.Sh NAME
39.Nm wc
40.Nd word, line, and byte or character count
41.Sh SYNOPSIS
42.Nm wc
43.Op Fl c | m
44.Op Fl hlw
45.Op Ar file ...
46.Sh DESCRIPTION
47The
48.Nm
49utility reads one or more input text files, and, by
50default, writes the number of lines, words, and bytes
51contained in each input file to the standard output.
52If more than one input file is specified,
53a line of cumulative count(s) for all named files is output on a
54separate line following the last file count.
55.Nm
56considers a word to be a maximal string of characters delimited by
57whitespace.
58Whitespace characters are the set of characters for which the
59.Xr isspace 3
60function returns true.
61.Pp
62The options are as follows:
63.Bl -tag -width Ds
64.It Fl c
65The number of bytes in each input file
66is written to the standard output.
67.It Fl h
68Use unit suffixes: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte,
69Petabyte, and Exabyte in order to reduce the number of digits to four or fewer
70using powers of 2 for sizes (K=1024, M=1048576, etc.).
71.It Fl l
72The number of lines in each input file
73is written to the standard output.
74.It Fl m
75The number of characters in each input file
76is written to the standard output.
77.It Fl w
78The number of words in each input file
79is written to the standard output.
80.El
81.Pp
82When an option is specified,
83.Nm
84only reports the information requested by that option.
85The default action is equivalent to the flags
86.Fl clw
87having been specified.
88The
89.Fl c
90and
91.Fl m
92options are mutually exclusive.
93.Pp
94If no file names are specified, the standard input is used
95and a file name is not output.
96The resulting output is one
97line of the requested count(s) with the cumulative sum
98of all files read in via standard input.
99.Pp
100By default, the standard output contains a line for each
101input file of the form:
102.Bd -literal -offset indent
103lines	 words	bytes	file_name
104.Ed
105.Pp
106If the
107.Fl m
108option is specified,
109the number of bytes is replaced by
110the number of characters in the listing above.
111The counts for lines, words, and bytes
112.Pq or characters
113are integers separated by spaces.
114.Pp
115The
116.Nm
117utility exits 0 on success or >0 if an error occurred.
118.Sh SEE ALSO
119.Xr isspace 3
120.Sh STANDARDS
121The
122.Nm
123utility is compliant with the
124.St -p1003.1-2004
125specification.
126.Pp
127The flag
128.Op Fl h
129is an extension to that specification.
130.Pp
131Historically, the
132.Nm
133utility was documented to define a word as a ``maximal string of
134characters delimited by
135.Aq space ,
136.Aq tab
137or
138.Aq newline
139characters''.
140The implementation, however, didn't handle non-printing characters
141correctly so that ``  ^D^E  '' counted as 6 spaces, while ``foo^D^Ebar''
142counted as 8 characters.
1434BSD systems after 4.3BSD modified the implementation to be consistent
144with the documentation.
145This implementation defines a
146.Dq word
147in terms of the
148.Xr isspace 3
149function, as required by
150.St -p1003.2-92 .
151.Sh HISTORY
152A
153.Nm
154utility appeared in
155.At v1 .
156