wc — Count newlines, words, and bytes

Format

Start of change wc [–Blw] [–c|–m] [-W option[,option]...] [file …file …]End of change

Description

wc tells you how large a text document is. It counts the number of newlines, words, characters, and bytes in text files. If you specify multiple files, wc produces counts for each file, plus totals for all files. If you do not specify any files, wc reads from the standard input (stdin).

Options

Start of change–BEnd of change
Start of changeDisables the automatic conversion of tagged files. This option is ignored if the filecodeset or pgmcodeset options (-W option) are specified.End of change
–c
Prints a byte count. You cannot specify this option with –m.
–l
Prints a <newline> count
–m
Prints a character count. You cannot specify this option with –c.
–w
Prints a word count
Start of change-W option[,option]...End of change
Specifies z/OS-specific options. The option keywords are case-sensitive. Possible options are:
filecodeset=codeset
Performs text conversion from one code set to another when reading from the file. The coded character set of the file is codeset. codeset can be a code set name known to the system or a numeric coded character set identifier (CCSID). Note that the command iconv -l lists existing CCSIDs along with their corresponding code set names. The filecodeset and pgmcodeset options can be used on files with any file tag.

If pgmcodeset is specified but filecodeset is omitted, then the default file code set is ISO8859-1 even if the file is tagged with a different code set. If neither filecodeset nor pgmcodeset is specified, text conversion will not occur unless automatic conversion is enabled or the _TEXT_CONV environment variable indicates text conversion. For more information about text conversion, see Controlling text conversion for z/OS UNIX shell commands.

If filecodeset or pgmcodeset is specified, then automatic conversion is disabled for this command invocation and the -B option is ignored if it is also specified. See z/OS UNIX System Services Planning for more information about automatic conversion.

Start of changeWhen specifying values for filecodeset, use the values that Unicode Service supports. For more information about supported code sets, see z/OS Unicode Services User's Guide and Reference.End of change

Start of changepgmcodeset=codesetEnd of change
Start of changePerforms text conversion from one code set to another when reading from the file. The coded character set of the program (command) is codeset. codeset can be a code set name known to the system or a numeric coded character set identifier (CCSID). Note that the command iconv -l lists existing CCSIDs along with their corresponding code set names. The filecodeset and pgmcodeset options can be used on files with any file tag.

If filecodeset is specified but pgmcodeset is omitted, then the default program code set is IBM-1047. If neither filecodeset nor pgmcodeset is specified, text conversion will not occur unless automatic conversion is enabled or the _TEXT_CONV environment variable indicates text conversion. For more information about text conversion, see Controlling text conversion for z/OS UNIX shell commands.

If filecodeset or pgmcodeset is specified, then automatic conversion is disabled for this command invocation and the -B option is ignored if it is also specified. See z/OS UNIX System Services Planning for more information about automatic conversion.

Restriction: The only supported values for pgmcodeset are IBM-1047 and 1047.

End of change

The order of options can dictate the order in which wc displays counts. For example, wc –cwl displays the number of bytes, then the number of words, then the number of <newline>s. If you do not specify any options, the default is wc –lwc (<newline> count, then words, then bytes).

A word is considered to be a character or characters delimited by white space.

Note: If you have a file containing double-byte characters, the byte count is higher than the character count.
Start of change

Examples

  1. To display the <newline> count, followed by the word count, followed by the byte count of a text file to the standard output (stdout):
    wc myTextFile
  2. To display a byte count followed by a word count of a text file containing ASCII characters to the standard output (stdout), assuming that:
    • The text file is untagged and you do not want to tag it or enable automatic conversion, and
    • You cannot alter the tag (for example, you are displaying an untagged public text file or a read-only text file):
    wc -cw -W filecodeset=ISO8859-1,pgmcodeset=IBM-1047 myAsciiFile
  3. To display the <newline> count of a text file containing EBCDIC characters, assuming that automatic conversion has been enabled but the text file is incorrectly tagged as Start of changeUTF-8: End of change
    wc -lB myMisTaggedFile
End of change

Localization

wc uses the following localization environment variables:
  • LANG
  • LC_ALL
  • LC_CTYPE
  • LC_MESSAGES
  • NLSPATH

See Localization for more information.

Start of change

Environment variables

wc uses the following environment variable:
_TEXT_CONV
Contains text conversion information for the command. The text conversion information is not used when either the -B option or the filecodeset or pgmcodeset option (-W option) is specified. For more information about text conversion, see Controlling text conversion for z/OS UNIX shell commands.
End of change

Exit values

0
Successful completion
1
Failure due to any of the following:
  • Inability to open the input file
  • Start of changeThe code set is not validEnd of change
  • Start of changeCould not turn off automatic conversionEnd of change
  • Start of changeCould not perform requested text conversionEnd of change
2
Failure because of an incorrect command-line option

Portability

POSIX.2, X/Open Portability Guide, UNIX systems.

The way the order of options –c, –l and –w affects the order of display is an extension to traditional implementations of wc. Start of changeThe -B and -W options are extensions of the POSIX standard.End of change

Related information

awk, ed, vi