[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.1 wc: 行数、単語数、バイト数を表示する

wc は、指定された各 file に含まれる、バイト数、文字数、ホワイトスペース (訳注: 空白、タブ、改行など) で区切られた単語数、改行数を算出する。 file が指定されなかった場合や、file として ‘-’ が指定された場合は、標準入力を対象とする。

書式:

 
wc [option]… [file]…

wc は各ファイルにつき、一行の算出結果を出力する。 引数としてファイルが指定されていれば、そのファイル名を数値の後ろに表示する。 複数の file が指定されている場合は、最後の行で合計を表示し、 ファイル名の列に、「合計 (‘total’)」と書き込む。表示される数値の順番は、 改行数、単語数、文字数、バイト数、最長行の長さになる。 各数値は、フィールドに右詰めで表示され、フィールド間には、少なくとも一個の空白が置かれる。 そうすることで、複数の数字とファイル名が、たいていの場合きちんと整列するようになっているのだ。 数値の入るフィールドの幅は、入力に応じて変化するので、 一定のフィールド幅を当てにするべきではない。ただし、GNU の拡張として、 表示される数値がただ 1 個だけの場合は、その数値の頭に空白を入れないことになっている。

デフォルトでは、wc は 3 個の数値を表示する。 すなわち、改行数、単語数、バイト数である。 オプションによって、特定の数値のみを表示するように指定することもできる。 どんなオプションも、それ以前に指定されたオプションを取り消すことはない。従って、

 
wc --bytes --words

上記のコマンドは、バイト数と単語数の両方を表示することになる。

--max-line-length’ を指定すると、wc はファイルごとの最長行の長さを表示する。さらに、複数のファイルが存在する場合は、 (各最長行の合計ではなく) 最長行中の最長のものを表示する。ここで言う行の長さは、 画面に表示される桁数のことである。表示桁数の計算は現在のロケールに従って行われ、 タブ位置は 8 桁ごとに来るものとされる。

このプログラムでは以下のオプションが使用できる。参照: 共通オプション.

-c
--bytes

バイト数のみを表示する。

-m
--chars

文字数のみを表示する。

-w
--words

単語数のみを表示する。

-l
--lines

改行数のみを表示する。

-L
--max-line-length

最長表示行の長さのみを表示する。タブ位置は 8 桁ごとにあるものとする。 ワイド・キャラクタについては、表示される幅を考慮する。非表示文字の幅は 0 とする。

--files0-from=file

コマンドラインで名前を指定されたファイルの処理を行わない。その代わりに、 ファイル file に名前が書き込まれているファイルの処理を行う。 なお、file 中に書かれている各ファイル名は、ゼロバイト (ASCII NUL) で終端されていなければならない。このオプションは、ファイル名のリストが長すぎて、 コマンドライン長の上限を超過してしまいそうなときに、 便利である。そうした場合、wcxargs 経由で実行するのは、望ましくない。 なぜなら、xargs はファイルのリストをいくつかの部分に分割して wc に渡すので、wc はリスト全体の合計ではなく、 部分リストごとの合計を表示してしまうからである。 ASCII NUL で終端されたファイル名のリストを得る方法の一つは、 GNU find に ‘-print0’ を付けて使うことである。 file に ‘-’ を指定すれば、 ASCII NUL で終端されたファイル名を標準入力から読み込むことができる。

たとえば、カレント・ディレクトリ以下にある、すべての ‘.c’ ファイルや ‘.h’ ファイルの内で、最長の行の長さを知るには、次のようにする。

 
find . -name '*.[ch]' -print0 |
  wc -L --files0-from=- | tail -n1

終了ステータス 0 は成功を示し、0 以外の値は失敗を示す。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated on June 7, 2022 using texi2html 1.82.