01 / 08
見ないで数える
ここまでは「中身を目で見る」道具ばかりだったね。
でも知りたいことが数だけのときもあるよ。「このログは何行ある?」「ファイルはいくつある?」——そういうときに中身を出す必要は無い。
数えるための道具が wc だよ。
中身を見る
INPUT · スライド
01 / 08
ここまでは「中身を目で見る」道具ばかりだったね。
でも知りたいことが数だけのときもあるよ。「このログは何行ある?」「ファイルはいくつある?」——そういうときに中身を出す必要は無い。
数えるための道具が wc だよ。
02 / 08
wc は word count(単語を数える)の略だけれど、実は3つの数を一度に出すよ。
左から順に、行数・単語数・バイト数。名前に反して、単語はそのうちのひとつだけなんだ。
~ $ wc eigo.txt 2 4 25 eigo.txt03 / 08
3つ全部は要らないことが多いので、ふつうはオプションで1つに絞るよ。
-l … 行数(lines)-w … 単語数(words)-c … バイト数(characters の c だけれど、数えるのはバイト)いちばんよく使うのは -l だよ。「何件あるか」を知りたい場面がとても多いからだね。
~ $ wc -l namae.txt5 namae.txt04 / 08
-c が数えるのはバイトで、文字ではないよ。ふだんは同じに見えるけれど、日本語を入れると違いが出る。
ねこ は2文字。でも日本語の1文字は3バイトなので、ねこ は6バイトになるんだ。改行を足して7バイトだよ。
文字の数を知りたいときは -m を使うよ。
~ $ wc -c neko.txt7 neko.txt~ $ wc -m neko.txt3 neko.txt05 / 08
wc はファイル名をもらわずに、| で流しこまれたものも数えられるよ。
そのときは右端のファイル名が出なくなる。数えたものに名前が無いからだね。
これは地味だけど便利な性質だよ。数だけが欲しいときは、流しこむほうがそのまま使えるんだ。
~ $ cat namae.txt | wc -l506 / 08
wc -l の使い方でいちばん多いのが、これかもしれない。
ls | wc -l で、そこにあるものの数が分かるよ。ls が1行に1つずつ名前を出して、それを wc -l が数えるという仕組みだね。
目で数えなくていい、というだけだけれど、100 個あるときには大違いだよ。
~ $ ls | wc -l407 / 08
ファイルを2つ以上渡すと、それぞれの数のあとに total(合計)の行が付くよ。
「このディレクトリのファイル全部で何行あるか」を知りたいときに使える形だよ。
~ $ wc -l namae.txt eigo.txt 5 namae.txt 2 eigo.txt 7 total08 / 08
答えの数が合っているかどうかで判定するので、数えまちがえないようにね。
といっても、数えるのは wc の仕事だよ。あなたの仕事は「何を数えさせるか」を決めることだけ。