wc.1p (7866B)
- '\" et
- .TH WC "1P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
- .\"
- .SH PROLOG
- This manual page is part of the POSIX Programmer's Manual.
- The Linux implementation of this interface may differ (consult
- the corresponding Linux manual page for details of Linux behavior),
- or the interface may not be implemented on Linux.
- .\"
- .SH NAME
- wc
- \(em word, line, and byte or character count
- .SH SYNOPSIS
- .LP
- .nf
- wc \fB[\fR-c|-m\fB] [\fR-lw\fB] [\fIfile\fR...\fB]\fR
- .fi
- .SH DESCRIPTION
- The
- .IR wc
- utility shall read one or more input files and, by default, write the
- number of
- <newline>
- characters, words, and bytes contained in each input file to the standard
- output.
- .P
- The utility also shall write a total count for all named files, if more
- than one input file is specified.
- .P
- The
- .IR wc
- utility shall consider a
- .IR word
- to be a non-zero-length string of characters delimited by white space.
- .SH OPTIONS
- The
- .IR wc
- utility shall conform to the Base Definitions volume of POSIX.1\(hy2017,
- .IR "Section 12.2" ", " "Utility Syntax Guidelines".
- .P
- The following options shall be supported:
- .IP "\fB\-c\fP" 10
- Write to the standard output the number of bytes in each input file.
- .IP "\fB\-l\fP" 10
- Write to the standard output the number of
- <newline>
- characters in each input file.
- .IP "\fB\-m\fP" 10
- Write to the standard output the number of characters in each input
- file.
- .IP "\fB\-w\fP" 10
- Write to the standard output the number of words in each input file.
- .P
- When any option is specified,
- .IR wc
- shall report only the information requested by the specified options.
- .SH OPERANDS
- The following operand shall be supported:
- .IP "\fIfile\fR" 10
- A pathname of an input file. If no
- .IR file
- operands are specified, the standard input shall be used.
- .SH STDIN
- The standard input shall be used if no
- .IR file
- operands are specified, and shall be used if a
- .IR file
- operand is
- .BR '\-'
- and the implementation treats the
- .BR '\-'
- as meaning standard input.
- Otherwise, the standard input shall not be used.
- See the INPUT FILES section.
- .SH "INPUT FILES"
- The input files may be of any type.
- .SH "ENVIRONMENT VARIABLES"
- The following environment variables shall affect the execution of
- .IR wc :
- .IP "\fILANG\fP" 10
- Provide a default value for the internationalization variables that are
- unset or null. (See the Base Definitions volume of POSIX.1\(hy2017,
- .IR "Section 8.2" ", " "Internationalization Variables"
- for the precedence of internationalization variables used to determine
- the values of locale categories.)
- .IP "\fILC_ALL\fP" 10
- If set to a non-empty string value, override the values of all the
- other internationalization variables.
- .IP "\fILC_CTYPE\fP" 10
- Determine the locale for the interpretation of sequences of bytes of
- text data as characters (for example, single-byte as opposed to
- multi-byte characters in arguments and input files) and which
- characters are defined as white-space characters.
- .IP "\fILC_MESSAGES\fP" 10
- .br
- Determine the locale that should be used to affect the format and
- contents of diagnostic messages written to standard error and
- informative messages written to standard output.
- .IP "\fINLSPATH\fP" 10
- Determine the location of message catalogs for the processing of
- .IR LC_MESSAGES .
- .SH "ASYNCHRONOUS EVENTS"
- Default.
- .SH STDOUT
- By default, the standard output shall contain an entry for each input
- file of the form:
- .sp
- .RS 4
- .nf
- "%d %d %d %s\en", <\fInewlines\fR>, <\fIwords\fR>, <\fIbytes\fR>, <\fIfile\fR>
- .fi
- .P
- .RE
- .P
- If the
- .BR \-m
- option is specified, the number of characters shall replace the
- <\fIbytes\fP> field in this format.
- .P
- If any options are specified and the
- .BR \-l
- option is not specified, the number of
- <newline>
- characters shall not be written.
- .P
- If any options are specified and the
- .BR \-w
- option is not specified, the number of words shall not be written.
- .P
- If any options are specified and neither
- .BR \-c
- nor
- .BR \-m
- is specified, the number of bytes or characters shall not be written.
- .P
- If no input
- .IR file
- operands are specified, no name shall be written and no
- <blank>
- characters preceding the pathname shall be written.
- .P
- If more than one input
- .IR file
- operand is specified, an additional line shall be written, of the same
- format as the other lines, except that the word
- .BR total
- (in the POSIX locale) shall be written instead of a pathname and the
- total of each column shall be written as appropriate. Such an
- additional line, if any, is written at the end of the output.
- .SH STDERR
- The standard error shall be used only for diagnostic messages.
- .SH "OUTPUT FILES"
- None.
- .SH "EXTENDED DESCRIPTION"
- None.
- .SH "EXIT STATUS"
- The following exit values shall be returned:
- .IP "\00" 6
- Successful completion.
- .IP >0 6
- An error occurred.
- .SH "CONSEQUENCES OF ERRORS"
- Default.
- .LP
- .IR "The following sections are informative."
- .SH "APPLICATION USAGE"
- The
- .BR \-m
- option is not a switch, but an option at the same level as
- .BR \-c .
- Thus, to produce the full default output with character counts instead
- of bytes, the command required is:
- .sp
- .RS 4
- .nf
- wc -mlw
- .fi
- .P
- .RE
- .SH EXAMPLES
- None.
- .SH RATIONALE
- The output file format pseudo-\c
- \fIprintf\fR()
- string differs from the System V version of
- .IR wc :
- .sp
- .RS 4
- .nf
- "%7d%7d%7d %s\en"
- .fi
- .P
- .RE
- .P
- which produces possibly ambiguous and unparsable results for very large
- files, as it assumes no number shall exceed six digits.
- .P
- Some historical implementations use only
- <space>,
- <tab>,
- and
- <newline>
- as word separators. The equivalent of the ISO\ C standard
- \fIisspace\fR()
- function is more appropriate.
- .P
- The
- .BR \-c
- option stands for ``character'' count, even though it counts bytes.
- This stems from the sometimes erroneous historical view that bytes and
- characters are the same size. Due to international requirements, the
- .BR \-m
- option (reminiscent of ``multi-byte'') was added to obtain actual
- character counts.
- .P
- Early proposals only specified the results when input files were text
- files. The current specification more closely matches historical
- practice. (Bytes, words, and
- <newline>
- characters are counted separately and the results are written when an
- end-of-file is detected.)
- .P
- Historical implementations of the
- .IR wc
- utility only accepted one argument to specify the options
- .BR \-c ,
- .BR \-l ,
- and
- .BR \-w .
- Some of them also had multiple occurrences of an option cause the
- corresponding count to be written multiple times and had the order of
- specification of the options affect the order of the fields on output,
- but did not document either of these. Because common usage either
- specifies no options or only one option, and because none of this was
- documented, the changes required by this volume of POSIX.1\(hy2017 should not break many
- historical applications (and do not break any historical conforming
- applications).
- .SH "FUTURE DIRECTIONS"
- None.
- .SH "SEE ALSO"
- .IR "\fIcksum\fR\^"
- .P
- The Base Definitions volume of POSIX.1\(hy2017,
- .IR "Chapter 8" ", " "Environment Variables",
- .IR "Section 12.2" ", " "Utility Syntax Guidelines"
- .\"
- .SH COPYRIGHT
- Portions of this text are reprinted and reproduced in electronic form
- from IEEE Std 1003.1-2017, Standard for Information Technology
- -- Portable Operating System Interface (POSIX), The Open Group Base
- Specifications Issue 7, 2018 Edition,
- Copyright (C) 2018 by the Institute of
- Electrical and Electronics Engineers, Inc and The Open Group.
- In the event of any discrepancy between this version and the original IEEE and
- The Open Group Standard, the original IEEE and The Open Group Standard
- is the referee document. The original Standard can be obtained online at
- http://www.opengroup.org/unix/online.html .
- .PP
- Any typographical or formatting errors that appear
- in this page are most likely
- to have been introduced during the conversion of the source files to
- man page format. To report such errors, see
- https://www.kernel.org/doc/man-pages/reporting_bugs.html .