xref: /freebsd/usr.bin/wc/wc.1 (revision 75acbb222694769c1089363d56af6fee95e2550d)
19b50d902SRodney W. Grimes.\" Copyright (c) 1991, 1993
29b50d902SRodney W. Grimes.\"	The Regents of the University of California.  All rights reserved.
39b50d902SRodney W. Grimes.\"
49b50d902SRodney W. Grimes.\" This code is derived from software contributed to Berkeley by
59b50d902SRodney W. Grimes.\" the Institute of Electrical and Electronics Engineers, Inc.
69b50d902SRodney W. Grimes.\"
79b50d902SRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without
89b50d902SRodney W. Grimes.\" modification, are permitted provided that the following conditions
99b50d902SRodney W. Grimes.\" are met:
109b50d902SRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright
119b50d902SRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer.
129b50d902SRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright
139b50d902SRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer in the
149b50d902SRodney W. Grimes.\"    documentation and/or other materials provided with the distribution.
15fbbd9655SWarner Losh.\" 3. Neither the name of the University nor the names of its contributors
169b50d902SRodney W. Grimes.\"    may be used to endorse or promote products derived from this software
179b50d902SRodney W. Grimes.\"    without specific prior written permission.
189b50d902SRodney W. Grimes.\"
199b50d902SRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
209b50d902SRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
219b50d902SRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
229b50d902SRodney W. Grimes.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
239b50d902SRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
249b50d902SRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
259b50d902SRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
269b50d902SRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
279b50d902SRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
289b50d902SRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
299b50d902SRodney W. Grimes.\" SUCH DAMAGE.
309b50d902SRodney W. Grimes.\"
319b50d902SRodney W. Grimes.\"     @(#)wc.1	8.2 (Berkeley) 4/19/94
32c3aac50fSPeter Wemm.\" $FreeBSD$
339b50d902SRodney W. Grimes.\"
34*75acbb22SEugene Grosbein.Dd April 11, 2020
359b50d902SRodney W. Grimes.Dt WC 1
369b50d902SRodney W. Grimes.Os
379b50d902SRodney W. Grimes.Sh NAME
389b50d902SRodney W. Grimes.Nm wc
39ebb42aeeSTim J. Robbins.Nd word, line, character, and byte count
409b50d902SRodney W. Grimes.Sh SYNOPSIS
418fe908efSRuslan Ermilov.Nm
42bf0df869SMarcel Moolenaar.Op Fl -libxo
43f45dd010SGiorgos Keramidas.Op Fl Lclmw
448c85cce7SPhilippe Charnier.Op Ar
459b50d902SRodney W. Grimes.Sh DESCRIPTION
469b50d902SRodney W. GrimesThe
478c85cce7SPhilippe Charnier.Nm
489b50d902SRodney W. Grimesutility displays the number of lines, words, and bytes contained in each
499b50d902SRodney W. Grimesinput
50c566c001STom Rhodes.Ar file ,
51c566c001STom Rhodesor standard input (if no file is specified) to the standard output.
52c566c001STom RhodesA line is defined as a string of characters delimited by a
53c566c001STom Rhodes.Aq newline
54c566c001STom Rhodescharacter.
55c566c001STom RhodesCharacters beyond the final
56c566c001STom Rhodes.Aq newline
57c566c001STom Rhodescharacter will not be included
58c566c001STom Rhodesin the line count.
59c566c001STom Rhodes.Pp
60c566c001STom RhodesA word is defined as a string of characters delimited by white space
619b50d902SRodney W. Grimescharacters.
629b50d902SRodney W. GrimesWhite space characters are the set of characters for which the
63e58245f7STim J. Robbins.Xr iswspace 3
649b50d902SRodney W. Grimesfunction returns true.
659b50d902SRodney W. GrimesIf more than one input file is specified, a line of cumulative counts
669b50d902SRodney W. Grimesfor all the files is displayed on a separate line after the output for
679b50d902SRodney W. Grimesthe last file.
689b50d902SRodney W. Grimes.Pp
699b50d902SRodney W. GrimesThe following options are available:
70f0dd79bcSRuslan Ermilov.Bl -tag -width indent
7106691045SCraig Rodrigues.It Fl -libxo
7206691045SCraig RodriguesGenerate output via
7306691045SCraig Rodrigues.Xr libxo 3
7406691045SCraig Rodriguesin a selection of different human and machine readable formats.
7506691045SCraig RodriguesSee
7606691045SCraig Rodrigues.Xr xo_parse_args 3
7706691045SCraig Rodriguesfor details on command line arguments.
78f45dd010SGiorgos Keramidas.It Fl L
7984b851c2SConrad MeyerWrite the length of the line containing the most bytes (default) or characters
8084b851c2SConrad Meyer(when
8184b851c2SConrad Meyer.Fl m
8284b851c2SConrad Meyeris provided)
8384b851c2SConrad Meyerto standard output.
846bc3fe5fSPedro F. GiffuniWhen more than one
85f45dd010SGiorgos Keramidas.Ar file
86f45dd010SGiorgos Keramidasargument is specified, the longest input line of
87f45dd010SGiorgos Keramidas.Em all
88f45dd010SGiorgos Keramidasfiles is reported as the value of the final
89f45dd010SGiorgos Keramidas.Dq total .
909b50d902SRodney W. Grimes.It Fl c
919b50d902SRodney W. GrimesThe number of bytes in each input file
929b50d902SRodney W. Grimesis written to the standard output.
93c566c001STom RhodesThis will cancel out any prior usage of the
94a1b763caSTom Rhodes.Fl m
95c566c001STom Rhodesoption.
969b50d902SRodney W. Grimes.It Fl l
979b50d902SRodney W. GrimesThe number of lines in each input file
989b50d902SRodney W. Grimesis written to the standard output.
99ebb42aeeSTim J. Robbins.It Fl m
100ebb42aeeSTim J. RobbinsThe number of characters in each input file is written to the standard output.
101ebb42aeeSTim J. RobbinsIf the current locale does not support multibyte characters, this
102ebb42aeeSTim J. Robbinsis equivalent to the
103ebb42aeeSTim J. Robbins.Fl c
104ebb42aeeSTim J. Robbinsoption.
105c566c001STom RhodesThis will cancel out any prior usage of the
106c566c001STom Rhodes.Fl c
107c566c001STom Rhodesoption.
1089b50d902SRodney W. Grimes.It Fl w
1099b50d902SRodney W. GrimesThe number of words in each input file
1109b50d902SRodney W. Grimesis written to the standard output.
1119b50d902SRodney W. Grimes.El
1129b50d902SRodney W. Grimes.Pp
1139b50d902SRodney W. GrimesWhen an option is specified,
1148c85cce7SPhilippe Charnier.Nm
1159b50d902SRodney W. Grimesonly reports the information requested by that option.
116c566c001STom RhodesThe order of output always takes the form of line, word,
117c566c001STom Rhodesbyte, and file name.
118ebb42aeeSTim J. RobbinsThe default action is equivalent to specifying the
11906e482e6SRuslan Ermilov.Fl c , l
120ebb42aeeSTim J. Robbinsand
121ebb42aeeSTim J. Robbins.Fl w
122ebb42aeeSTim J. Robbinsoptions.
1239b50d902SRodney W. Grimes.Pp
1249b50d902SRodney W. GrimesIf no files are specified, the standard input is used and no
1259b50d902SRodney W. Grimesfile name is displayed.
126c566c001STom RhodesThe prompt will accept input until receiving EOF, or
127c566c001STom Rhodes.Bq ^D
128c566c001STom Rhodesin most environments.
129*75acbb22SEugene Grosbein.Pp
130*75acbb22SEugene GrosbeinIf
131*75acbb22SEugene Grosbein.Nm
132*75acbb22SEugene Grosbeinreceives a
133*75acbb22SEugene Grosbein.Dv SIGINFO
134*75acbb22SEugene Grosbein(see the
135*75acbb22SEugene Grosbein.Cm status
136*75acbb22SEugene Grosbeinargument for
137*75acbb22SEugene Grosbein.Xr stty 1 )
138*75acbb22SEugene Grosbeinsignal, the interim data will be written
139*75acbb22SEugene Grosbeinto the standard error output in the same format
140*75acbb22SEugene Grosbeinas the standard completion message.
141ebb42aeeSTim J. Robbins.Sh ENVIRONMENT
142ebb42aeeSTim J. RobbinsThe
14306e482e6SRuslan Ermilov.Ev LANG , LC_ALL
144ebb42aeeSTim J. Robbinsand
145ebb42aeeSTim J. Robbins.Ev LC_CTYPE
146ebb42aeeSTim J. Robbinsenvironment variables affect the execution of
147ebb42aeeSTim J. Robbins.Nm
148ebb42aeeSTim J. Robbinsas described in
14998c385e7STim J. Robbins.Xr environ 7 .
1506c7216dfSRuslan Ermilov.Sh EXIT STATUS
1516c7216dfSRuslan Ermilov.Ex -std
152ebb42aeeSTim J. Robbins.Sh EXAMPLES
153ebb42aeeSTim J. RobbinsCount the number of characters, words and lines in each of the files
154ebb42aeeSTim J. Robbins.Pa report1
155ebb42aeeSTim J. Robbinsand
156ebb42aeeSTim J. Robbins.Pa report2
157ebb42aeeSTim J. Robbinsas well as the totals for both:
158ebb42aeeSTim J. Robbins.Pp
159ebb42aeeSTim J. Robbins.Dl "wc -mlw report1 report2"
160f45dd010SGiorgos Keramidas.Pp
161f45dd010SGiorgos KeramidasFind the longest line in a list of files:
162f45dd010SGiorgos Keramidas.Pp
163f45dd010SGiorgos Keramidas.Dl "wc -L file1 file2 file3 | fgrep total"
1649b50d902SRodney W. Grimes.Sh COMPATIBILITY
1659b50d902SRodney W. GrimesHistorically, the
1668c85cce7SPhilippe Charnier.Nm
167f0dd79bcSRuslan Ermilovutility was documented to define a word as a
168f0dd79bcSRuslan Ermilov.Do
169f0dd79bcSRuslan Ermilovmaximal string of
170f0dd79bcSRuslan Ermilovcharacters delimited by <space>, <tab> or <newline> characters
171f0dd79bcSRuslan Ermilov.Dc .
1720227791bSRuslan ErmilovThe implementation, however, did not handle non-printing characters
173557b7fa1SRuslan Ermilovcorrectly so that
174cf1fd21bSRuslan Ermilov.Dq Li "\ \ ^D^E\ \ "
1754438d91eSRuslan Ermilovcounted as 6 spaces, while
1764438d91eSRuslan Ermilov.Dq Li foo^D^Ebar
1779b50d902SRodney W. Grimescounted as 8 characters.
178753d686dSRuslan Ermilov.Bx 4
179753d686dSRuslan Ermilovsystems after
180753d686dSRuslan Ermilov.Bx 4.3
181753d686dSRuslan Ermilovmodified the implementation to be consistent
1829b50d902SRodney W. Grimeswith the documentation.
183f0dd79bcSRuslan ErmilovThis implementation defines a
184f0dd79bcSRuslan Ermilov.Dq word
185f0dd79bcSRuslan Ermilovin terms of the
186e58245f7STim J. Robbins.Xr iswspace 3
1879b50d902SRodney W. Grimesfunction, as required by
1889b50d902SRodney W. Grimes.St -p1003.2 .
189f45dd010SGiorgos Keramidas.Pp
190f45dd010SGiorgos KeramidasThe
191f45dd010SGiorgos Keramidas.Fl L
192f45dd010SGiorgos Keramidasoption is a non-standard
193f45dd010SGiorgos Keramidas.Fx
194f45dd010SGiorgos Keramidasextension, compatible with the
195f45dd010SGiorgos Keramidas.Fl L
196f45dd010SGiorgos Keramidasoption of the GNU
197f45dd010SGiorgos Keramidas.Nm
198f45dd010SGiorgos Keramidasutility.
1996c7216dfSRuslan Ermilov.Sh SEE ALSO
200c61e3115SMarcel Moolenaar.Xr iswspace 3 ,
201c61e3115SMarcel Moolenaar.Xr libxo 3 ,
202bf0df869SMarcel Moolenaar.Xr xo_parse_args 3
2039b50d902SRodney W. Grimes.Sh STANDARDS
2049b50d902SRodney W. GrimesThe
2058c85cce7SPhilippe Charnier.Nm
206e785a241STim J. Robbinsutility conforms to
207ebb42aeeSTim J. Robbins.St -p1003.1-2001 .
208b8923d4cSWolfram Schneider.Sh HISTORY
209b8923d4cSWolfram SchneiderA
210b8923d4cSWolfram Schneider.Nm
211b8923d4cSWolfram Schneidercommand appeared in
212b8923d4cSWolfram Schneider.At v1 .
213