中身を見る

INPUT · スライド

数を数える

01 / 08

見ないで数える

ここまでは「中身を目で見る」道具ばかりだったね。

でも知りたいことが数だけのときもあるよ。「このログは何行ある?」「ファイルはいくつある?」——そういうときに中身を出す必要は無い。

数えるための道具が wc だよ。

02 / 08

wc — 行・単語・バイトを数える

wcword count(単語を数える)の略だけれど、実は3つの数を一度に出すよ。

左から順に、行数・単語数・バイト数。名前に反して、単語はそのうちのひとつだけなんだ。

~ $ wc eigo.txt      2       4      25 eigo.txt

03 / 08

-l で行数だけ

3つ全部は要らないことが多いので、ふつうはオプションで1つに絞るよ。

  • -l … 行数(lines
  • -w … 単語数(words
  • -c … バイト数(characters の c だけれど、数えるのはバイト

いちばんよく使うのは -l だよ。「何件あるか」を知りたい場面がとても多いからだね。

~ $ wc -l namae.txt5 namae.txt

04 / 08

バイトと文字は違う

-c が数えるのはバイトで、文字ではないよ。ふだんは同じに見えるけれど、日本語を入れると違いが出る。

ねこ は2文字。でも日本語の1文字は3バイトなので、ねこ は6バイトになるんだ。改行を足して7バイトだよ。

文字の数を知りたいときは -m を使うよ。

~ $ wc -c neko.txt7 neko.txt~ $ wc -m neko.txt3 neko.txt

05 / 08

流しこむと、ファイル名が消える

wc はファイル名をもらわずに、| で流しこまれたものも数えられるよ。

そのときは右端のファイル名が出なくなる。数えたものに名前が無いからだね。

これは地味だけど便利な性質だよ。数だけが欲しいときは、流しこむほうがそのまま使えるんだ。

~ $ cat namae.txt | wc -l5

06 / 08

ファイルの数を数える

wc -l の使い方でいちばん多いのが、これかもしれない。

ls | wc -l で、そこにあるものの数が分かるよ。ls が1行に1つずつ名前を出して、それを wc -l が数えるという仕組みだね。

目で数えなくていい、というだけだけれど、100 個あるときには大違いだよ。

~ $ ls | wc -l4

07 / 08

2つ以上渡すと合計も出る

ファイルを2つ以上渡すと、それぞれの数のあとに total(合計)の行が付くよ。

「このディレクトリのファイル全部で何行あるか」を知りたいときに使える形だよ。

~ $ wc -l namae.txt eigo.txt      5 namae.txt      2 eigo.txt      7 total

08 / 08

さあ、打ってみよう

答えの数が合っているかどうかで判定するので、数えまちがえないようにね。

といっても、数えるのは wc の仕事だよ。あなたの仕事は「何を数えさせるか」を決めることだけ。