xref: /freebsd/usr.bin/wc/wc.1 (revision cc16dea626cf2fc80cde667ac4798065108e596c)
1.\" Copyright (c) 1991, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" This code is derived from software contributed to Berkeley by
5.\" the Institute of Electrical and Electronics Engineers, Inc.
6.\"
7.\" Redistribution and use in source and binary forms, with or without
8.\" modification, are permitted provided that the following conditions
9.\" are met:
10.\" 1. Redistributions of source code must retain the above copyright
11.\"    notice, this list of conditions and the following disclaimer.
12.\" 2. Redistributions in binary form must reproduce the above copyright
13.\"    notice, this list of conditions and the following disclaimer in the
14.\"    documentation and/or other materials provided with the distribution.
15.\" 4. Neither the name of the University nor the names of its contributors
16.\"    may be used to endorse or promote products derived from this software
17.\"    without specific prior written permission.
18.\"
19.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29.\" SUCH DAMAGE.
30.\"
31.\"     @(#)wc.1	8.2 (Berkeley) 4/19/94
32.\" $FreeBSD$
33.\"
34.Dd December 6, 2008
35.Dt WC 1
36.Os
37.Sh NAME
38.Nm wc
39.Nd word, line, character, and byte count
40.Sh SYNOPSIS
41.Nm
42.Op Fl Lclmw
43.Op Ar
44.Sh DESCRIPTION
45The
46.Nm
47utility displays the number of lines, words, and bytes contained in each
48input
49.Ar file ,
50or standard input (if no file is specified) to the standard output.
51A line is defined as a string of characters delimited by a
52.Aq newline
53character.
54Characters beyond the final
55.Aq newline
56character will not be included
57in the line count.
58.Pp
59A word is defined as a string of characters delimited by white space
60characters.
61White space characters are the set of characters for which the
62.Xr iswspace 3
63function returns true.
64If more than one input file is specified, a line of cumulative counts
65for all the files is displayed on a separate line after the output for
66the last file.
67.Pp
68The following options are available:
69.Bl -tag -width indent
70.It Fl L
71The number of characters in the longest input line
72is written to the standard output.
73When more then one
74.Ar file
75argument is specified, the longest input line of
76.Em all
77files is reported as the value of the final
78.Dq total .
79.It Fl c
80The number of bytes in each input file
81is written to the standard output.
82This will cancel out any prior usage of the
83.Fl m
84option.
85.It Fl l
86The number of lines in each input file
87is written to the standard output.
88.It Fl m
89The number of characters in each input file is written to the standard output.
90If the current locale does not support multibyte characters, this
91is equivalent to the
92.Fl c
93option.
94This will cancel out any prior usage of the
95.Fl c
96option.
97.It Fl w
98The number of words in each input file
99is written to the standard output.
100.El
101.Pp
102When an option is specified,
103.Nm
104only reports the information requested by that option.
105The order of output always takes the form of line, word,
106byte, and file name.
107The default action is equivalent to specifying the
108.Fl c , l
109and
110.Fl w
111options.
112.Pp
113If no files are specified, the standard input is used and no
114file name is displayed.
115The prompt will accept input until receiving EOF, or
116.Bq ^D
117in most environments.
118.Sh ENVIRONMENT
119The
120.Ev LANG , LC_ALL
121and
122.Ev LC_CTYPE
123environment variables affect the execution of
124.Nm
125as described in
126.Xr environ 7 .
127.Sh EXIT STATUS
128.Ex -std
129.Sh EXAMPLES
130Count the number of characters, words and lines in each of the files
131.Pa report1
132and
133.Pa report2
134as well as the totals for both:
135.Pp
136.Dl "wc -mlw report1 report2"
137.Pp
138Find the longest line in a list of files:
139.Pp
140.Dl "wc -L file1 file2 file3 | fgrep total"
141.Sh COMPATIBILITY
142Historically, the
143.Nm
144utility was documented to define a word as a
145.Do
146maximal string of
147characters delimited by <space>, <tab> or <newline> characters
148.Dc .
149The implementation, however, did not handle non-printing characters
150correctly so that
151.Dq Li "\ \ ^D^E\ \ "
152counted as 6 spaces, while
153.Dq Li foo^D^Ebar
154counted as 8 characters.
155.Bx 4
156systems after
157.Bx 4.3
158modified the implementation to be consistent
159with the documentation.
160This implementation defines a
161.Dq word
162in terms of the
163.Xr iswspace 3
164function, as required by
165.St -p1003.2 .
166.Pp
167The
168.Fl L
169option is a non-standard
170.Fx
171extension, compatible with the
172.Fl L
173option of the GNU
174.Nm
175utility.
176.Sh SEE ALSO
177.Xr iswspace 3
178.Sh STANDARDS
179The
180.Nm
181utility conforms to
182.St -p1003.1-2001 .
183.Sh HISTORY
184A
185.Nm
186command appeared in
187.At v1 .
188