Annotation of src/usr.bin/wc/wc.1, Revision 1.19
1.19 ! sobrado 1: .\" $OpenBSD: wc.1,v 1.18 2007/05/31 19:20:20 jmc Exp $
1.5 millert 2: .\"
3: .\" Copyright (c) 1991, 1993
4: .\" The Regents of the University of California. All rights reserved.
1.1 deraadt 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.
1.12 millert 17: .\" 3. Neither the name of the University nor the names of its contributors
1.1 deraadt 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: .\"
1.5 millert 33: .\" from: @(#)wc.1 8.2 (Berkeley) 4/19/94
1.1 deraadt 34: .\"
1.19 ! sobrado 35: .Dd $Mdocdate: May 31 2007 $
1.1 deraadt 36: .Dt WC 1
37: .Os
38: .Sh NAME
39: .Nm wc
1.14 jmc 40: .Nd word, line, and byte or character count
1.1 deraadt 41: .Sh SYNOPSIS
42: .Nm wc
1.14 jmc 43: .Op Fl c | m
1.16 espie 44: .Op Fl hlw
1.1 deraadt 45: .Op Ar file ...
46: .Sh DESCRIPTION
47: The
1.9 aaron 48: .Nm
1.1 deraadt 49: utility reads one or more input text files, and, by
50: default, writes the number of lines, words, and bytes
51: contained in each input file to the standard output.
52: If more than one input file is specified,
53: a line of cumulative count(s) for all named files is output on a
1.5 millert 54: separate line following the last file count.
1.9 aaron 55: .Nm
1.11 deraadt 56: considers a word to be a maximal string of characters delimited by
57: whitespace.
1.9 aaron 58: Whitespace characters are the set of characters for which the
1.5 millert 59: .Xr isspace 3
60: function returns true.
1.1 deraadt 61: .Pp
1.7 aaron 62: The options are as follows:
1.1 deraadt 63: .Bl -tag -width Ds
64: .It Fl c
65: The number of bytes in each input file
66: is written to the standard output.
1.16 espie 67: .It Fl h
68: Use unit suffixes: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte,
69: Petabyte, and Exabyte in order to reduce the number of digits to four or fewer
70: using powers of 2 for sizes (K=1024, M=1048576, etc.).
1.1 deraadt 71: .It Fl l
72: The number of lines in each input file
73: is written to the standard output.
74: .It Fl m
75: The number of characters in each input file
76: is written to the standard output.
77: .It Fl w
78: The number of words in each input file
79: is written to the standard output.
80: .El
81: .Pp
82: When an option is specified,
1.9 aaron 83: .Nm
1.5 millert 84: only reports the information requested by that option.
85: The default action is equivalent to the flags
1.1 deraadt 86: .Fl clw
1.9 aaron 87: having been specified.
88: The
1.5 millert 89: .Fl c
90: and
91: .Fl m
92: options are mutually exclusive.
1.1 deraadt 93: .Pp
1.5 millert 94: If no file names are specified, the standard input is used
1.10 aaron 95: and a file name is not output.
96: The resulting output is one
1.1 deraadt 97: line of the requested count(s) with the cumulative sum
98: of all files read in via standard input.
99: .Pp
100: By default, the standard output contains a line for each
101: input file of the form:
102: .Bd -literal -offset indent
103: lines words bytes file_name
104: .Ed
105: .Pp
1.14 jmc 106: If the
107: .Fl m
108: option is specified,
109: the number of bytes is replaced by
110: the number of characters in the listing above.
111: The counts for lines, words, and bytes
112: .Pq or characters
113: are integers separated by spaces.
1.1 deraadt 114: .Pp
1.19 ! sobrado 115: .Ex -std wc
1.5 millert 116: .Sh SEE ALSO
117: .Xr isspace 3
1.13 jmc 118: .Sh STANDARDS
1.17 jmc 119: The
120: .Nm
121: utility is compliant with the
122: .St -p1003.1-2004
123: specification.
124: .Pp
125: The flag
126: .Op Fl h
127: is an extension to that specification.
128: .Pp
1.5 millert 129: Historically, the
1.9 aaron 130: .Nm
1.5 millert 131: utility was documented to define a word as a ``maximal string of
1.13 jmc 132: characters delimited by
133: .Aq space ,
134: .Aq tab
135: or
136: .Aq newline
137: characters''.
1.5 millert 138: The implementation, however, didn't handle non-printing characters
139: correctly so that `` ^D^E '' counted as 6 spaces, while ``foo^D^Ebar''
140: counted as 8 characters.
141: 4BSD systems after 4.3BSD modified the implementation to be consistent
142: with the documentation.
1.9 aaron 143: This implementation defines a
144: .Dq word
145: in terms of the
1.5 millert 146: .Xr isspace 3
147: function, as required by
148: .St -p1003.2-92 .
1.9 aaron 149: .Sh HISTORY
150: A
151: .Nm
152: utility appeared in
153: .At v1 .