wc 行数、単語数、バイト数を数える
wc [オプション] [ファイル...]試してみる
wc access.log行数、単語数、バイト数を順に表示します。
wc -l access.log行数だけを表示します。いちばんよく使う形です。
wc -w access.log単語数(空白で区切られたかたまりの数)を表示します。
wc -c note.txtバイト数を表示します。日本語は1文字が複数バイトです。
wc -m note.txt文字数を表示します。ロケールが日本語のUTF-8のときに、文字として数えます。
grep -c 200 access.log; grep 200 access.log | wc -l一致した行を数える方法を2つ並べます。結果は同じです。
主なオプション
-l | 行数を表示する |
|---|---|
-w | 単語数を表示する |
-c | バイト数を表示する |
-m | 文字数を表示する |
-L | 最も長い行の表示幅を表示する |
解説
基本
wc は、ファイルの行数、単語数、バイト数をこの順に表示します。「行」は改行文字の数で数えるため、最後の行に改行がないファイルは、見た目より1少なく出ます。
オプションで絞る
欲しい数だけを -l(行)、-w(単語)、-c(バイト)、-m(文字)で指定します。-c と -m は、日本語を含むと値が変わります。
パイプでの利用
ls | wc -l のように、他のコマンドの出力の行数を数えるのが定番の使い方です。標準入力から読むときは、ファイル名が出力に付きません。
複数のファイル
ファイルを複数渡すと、各ファイルの数に加えて、最後に合計(total)が表示されます。
数え方の違い
grep の -c は「一致した行数」を出します。wc -l は、受け取った全行を数えるので、パイプでつなげば同じ結果になります。