WC(1)

NAME
wc - word, line, and byte or character count

SYNOPSIS
wc [-c | -m] [-hlw] [file ...]

DESCRIPTION
The wc utility reads one or more input text files, and, by default, writes the number of lines, words, and bytes contained in each input file to the standard output. If more than one input file is specified, a line of cumulative count(s) for all named files is output on a separate line following the last file count. wc considers a word to be a maximal string of characters delimited by whitespace. Whitespace characters are the set of characters for which the isspace(3) function returns true.

The options are as follows:

-c  The number of bytes in each input file is written to the standard output.

-h  Use unit suffixes: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte, Petabyte, and Exabyte in order to reduce the number of digits to four or fewer using powers of 2 for sizes (K=1024, M=1048576, etc.).

-l  The number of lines in each input file is written to the standard output.

-m  The number of characters in each input file is written to the standard output.

-w  The number of words in each input file is written to the standard output.

When an option is specified, wc only reports the information requested by that option. The default action is equivalent to the flags -clw having been specified. The -c and -m options are mutually exclusive.

If no file names are specified, the standard input is used and a file name is not output. The resulting output is one line of the requested count(s) with the cumulative sum of all files read in via standard input.

By default, the standard output contains a line for each input file of the form:

    lines	 words	bytes	file_name

If the -m option is specified, the number of bytes is replaced by the number of characters in the listing above. The counts for lines, words, and bytes (or characters) are integers separated by spaces.

EXIT STATUS

SEE ALSO
isspace(3)

STANDARDS
The wc utility is compliant with the p1003.1-2008 specification.

The flag [-h] is an extension to that specification.

Historically, the wc utility was documented to define a word as a ``maximal string of characters delimited by <space>, <tab> or <newline> characters''. The implementation, however, didn't handle non-printing characters correctly so that `` ^D^E '' counted as 6 spaces, while ``foo^D^Ebar'' counted as 8 characters. 4BSD systems after 4.3BSD modified the implementation to be consistent with the documentation. This implementation defines a “word” in terms of the isspace(3) function, as required by p1003.2-92.

HISTORY
A wc utility appeared in AT&T UNIX.