WC(1)

名称
wc - 行数、単語数、文字数、バイト数を数える

書式
wc [-clmw] [file ...]

解説
wc は各入力ファイル file または (ファイルが指定されなければ) 標準入力 に含まれる行数、単語数、バイト数を数えて標準出力に表示します。 行は <改行> 文字で区切られた文字列と定義されます。 最後の <改行> 文字より後の文字は、行数としては数えられません。

単語は空白文字で区切られた文字列、と定義されます。 ここで空白文字とは iswspace(3) が真を返すような文字をいいます。 複数のファイルが指定された場合は、 最後に行数、単語数、バイト数の各項目別の合計も表示します。

オプションとしては以下のものがあります。

-c  各入力ファイルのバイト数を標準出力に表示します。 これより前に指定された -w オプションの効果を打ち消します。

-l  各入力ファイルの行数を標準出力に表示します。

-m  各入力ファイルの文字数を標準出力に表示します。 現在のロケールがマルチバイト文字をサポートしない場合、 -c オプションと等価です。 これより前に指定された -c オプションの効果を打ち消します。

-w  各入力ファイルの単語数を標準出力に表示します。

オプションが指定された場合、 wc は要求された情報のみを表示します。 出力の形式は常に、 行数、単語数、バイト数、ファイル名の順になります。 デフォルトの動作は -c, -l, -w のオプションが指定された場合と同じです。

file が指定されなかった場合は、標準入力から読み込まれ、 ファイル名は出力されません。 このプロンプトでは、EOF、またはほとんどの環境では [^D] が来るまでの入力を受け入れます。

環境変数
LANG, LC_ALL, LC_CTYPE の環境変数が、 environ(7) の記述通りに、 wc の実行に影響します。

使用例
ファイル report1 と report2 のそれぞれの文字数、語数、行数を数え上げます。 また、両ファイルの合計も数え上げます。

    wc -mlw report1 report2

診断

関連項目
iswspace(3)

互換性
歴史的には、 wc では単語は「スペース、タブ、改行文字で区切られる最長の文字列」として 定義する、とドキュメントに記述されていました。 しかしこの実装は非表示文字を正しく扱いませんでした。 例えば “foo^D^Ebar” を 8 文字と数える一方、 “ ^D^E ” を 6 つの空白と数えたのでした。 4.3BSD 以降の 4BSD では ドキュメントと矛盾のないよう修正され、 p1003.2 で要求されているように、 iswspace(3) を用いて「単語」を定義するよう実装し直されました。

規格
wc は p1003.1-2001 に適合しています。

歴史
wc コマンドは AT&T UNIX から登場しました。