xref: /openbsd-src/usr.bin/wc/wc.1 (revision a28daedfc357b214be5c701aa8ba8adb29a7f1c2)
1.\"	$OpenBSD: wc.1,v 1.20 2009/02/08 17:15:10 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: February 8 2009 $
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
115.Ex -std wc
116.Sh SEE ALSO
117.Xr isspace 3
118.Sh STANDARDS
119The
120.Nm
121utility is compliant with the
122.St -p1003.1-2008
123specification.
124.Pp
125The flag
126.Op Fl h
127is an extension to that specification.
128.Pp
129Historically, the
130.Nm
131utility was documented to define a word as a ``maximal string of
132characters delimited by
133.Aq space ,
134.Aq tab
135or
136.Aq newline
137characters''.
138The implementation, however, didn't handle non-printing characters
139correctly so that ``  ^D^E  '' counted as 6 spaces, while ``foo^D^Ebar''
140counted as 8 characters.
1414BSD systems after 4.3BSD modified the implementation to be consistent
142with the documentation.
143This implementation defines a
144.Dq word
145in terms of the
146.Xr isspace 3
147function, as required by
148.St -p1003.2-92 .
149.Sh HISTORY
150A
151.Nm
152utility appeared in
153.At v1 .
154