xref: /freebsd/usr.bin/wc/wc.1 (revision ae1f3df43466466a21c7da0df93ecb58a3e53d74)
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 August 24, 2015
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 -libxo
43.Op Fl Lclmw
44.Op Ar
45.Sh DESCRIPTION
46The
47.Nm
48utility displays the number of lines, words, and bytes contained in each
49input
50.Ar file ,
51or standard input (if no file is specified) to the standard output.
52A line is defined as a string of characters delimited by a
53.Aq newline
54character.
55Characters beyond the final
56.Aq newline
57character will not be included
58in the line count.
59.Pp
60A word is defined as a string of characters delimited by white space
61characters.
62White space characters are the set of characters for which the
63.Xr iswspace 3
64function returns true.
65If more than one input file is specified, a line of cumulative counts
66for all the files is displayed on a separate line after the output for
67the last file.
68.Pp
69The following options are available:
70.Bl -tag -width indent
71.It Fl L
72The number of characters in the longest input line
73is written to the standard output.
74When more than one
75.Ar file
76argument is specified, the longest input line of
77.Em all
78files is reported as the value of the final
79.Dq total .
80.It Fl c
81The number of bytes in each input file
82is written to the standard output.
83This will cancel out any prior usage of the
84.Fl m
85option.
86.It Fl l
87The number of lines in each input file
88is written to the standard output.
89.It Fl m
90The number of characters in each input file is written to the standard output.
91If the current locale does not support multibyte characters, this
92is equivalent to the
93.Fl c
94option.
95This will cancel out any prior usage of the
96.Fl c
97option.
98.It Fl w
99The number of words in each input file
100is written to the standard output.
101.El
102.Pp
103When an option is specified,
104.Nm
105only reports the information requested by that option.
106The order of output always takes the form of line, word,
107byte, and file name.
108The default action is equivalent to specifying the
109.Fl c , l
110and
111.Fl w
112options.
113.Pp
114If no files are specified, the standard input is used and no
115file name is displayed.
116The prompt will accept input until receiving EOF, or
117.Bq ^D
118in most environments.
119.Sh ENVIRONMENT
120The
121.Ev LANG , LC_ALL
122and
123.Ev LC_CTYPE
124environment variables affect the execution of
125.Nm
126as described in
127.Xr environ 7 .
128.Sh EXIT STATUS
129.Ex -std
130.Sh EXAMPLES
131Count the number of characters, words and lines in each of the files
132.Pa report1
133and
134.Pa report2
135as well as the totals for both:
136.Pp
137.Dl "wc -mlw report1 report2"
138.Pp
139Find the longest line in a list of files:
140.Pp
141.Dl "wc -L file1 file2 file3 | fgrep total"
142.Sh COMPATIBILITY
143Historically, the
144.Nm
145utility was documented to define a word as a
146.Do
147maximal string of
148characters delimited by <space>, <tab> or <newline> characters
149.Dc .
150The implementation, however, did not handle non-printing characters
151correctly so that
152.Dq Li "\ \ ^D^E\ \ "
153counted as 6 spaces, while
154.Dq Li foo^D^Ebar
155counted as 8 characters.
156.Bx 4
157systems after
158.Bx 4.3
159modified the implementation to be consistent
160with the documentation.
161This implementation defines a
162.Dq word
163in terms of the
164.Xr iswspace 3
165function, as required by
166.St -p1003.2 .
167.Pp
168The
169.Fl L
170option is a non-standard
171.Fx
172extension, compatible with the
173.Fl L
174option of the GNU
175.Nm
176utility.
177.Sh SEE ALSO
178.Xr iswspace 3 ,
179.Xr libxo 3 ,
180.Xr xo_parse_args 3
181.Sh STANDARDS
182The
183.Nm
184utility conforms to
185.St -p1003.1-2001 .
186.Sh HISTORY
187A
188.Nm
189command appeared in
190.At v1 .
191