wc コマンド

目次

概要

wc - ファイルの行数・単語数・文字数をカウントする

コマンドライン

wc [OPTION]... [FILE]...
wc [OPTION]... --files0-from=F

対象バージョン

説明

ファイルの行数、単語数、文字数をカウントします。デフォルトでは行数、単語数、文字数(バイト単位)が表示されます。

$ wc fileA.txt
 3  9 50 fileA.txt

-l, -w, -c, -m, -L オプションはそれぞれ、行数(lines)、単語数(words)、文字数(バイト単位)(characters)、文字数(文字単位)(multibyte-characters)、最長行の文字数(Length) を意味します。

$ wc -l fileA.txt     # 行数を表示
3 fileA.txt
$ wc -lc fileA.txt    # 行数と文字数(バイト単位)を表示
 3 50 fileA.txt
$ wc -m fileA.txt     # 日本語を考慮した文字数を表示
46 fileA.txt

複数ファイルを対象とする場合や --total=always オプションを指定した場合は、最後にトータル数を表示します。

$ wc *.txt
 3  9 50 fileA.txt
 3  9 50 fileB.txt
 6 18 100 total

オプション

カウント項目

-l, --lines
行数を表示します。正確には改行文字(LF)の個数を表示します。最終行に改行が無い場合はカウントしません。
-w, --words
単語数を表示します。単語は空白文字(SPC)、改行文字(LF)、タブ文字(TAB)などで区切られます。
-c, --bytes
文字数(バイト単位)を表示します。
-m, --chars
文字数(文字単位)を表示します。日本語も1文字として数えます。通常は UTF-8 で処理しますが、うまくロケールやエンコードを処理できない場合はバイト数でカウントします。
-L, --max-line-length
最長行の文字数を表示します。改行はカウントしません。タブ文字(TAB)は8の倍数になるように調整されます。1文字の日本語「あ」などはバイト数であれば UTF-8 で 3文字、文字数であれば1文字とカウントしそうですが、何故か2文字としてカウントしているようです。

トータル表示

--total=WHEN
トータルカウント情報の表示を制御します。WHEN には下記のいずれかを指定します。
  • auto : 単数ファイルの場合は表示しない、複数ファイルの場合は表示します。デフォルト動作です。
  • always : 単数ファイルの場合も複数ファイルの場合も表示します。
  • never : 単数ファイルの場合も複数ファイルの場合も表示しません。

ヘルプ表示

--help
ヘルプを表示して終了します。
--version
バージョン情報を表示して終了します。

その他

--files0-from=FILE
カウント対象ファイルのリストをヌル文字(NUL)で区切られたファイル FILEから読み込みます。FILE- を指定した場合は標準入力から読み込みます。find-print0 オプションと組み合わせることにより、改行を含むファイルがあっても堅牢に対象ファイルを処理することができます。
$ find ./src -name "*.py" -print0 | wc --files0-from=-