導入
ここまでのレッスンでも head(先頭だけ)や wc -l(行数を数える)がパイプの相棒として何度も登場しました。この3つはパイプラインの締めに置かれる定番コマンドです。章の仕上げとして、あらためて正面から使い方を整理しておきましょう。
説明
head ― 先頭を見る。-n で行数を指定します(省略すると10行)。巨大なログをいきなり cat すると画面が流れてしまうので、「まず head で様子見」が現場の作法です。
head -n 3 logs/access.log
tail ― 末尾を見る。使い方は head と対になっていて、-n で「末尾から何行」を指定します。ログは末尾ほど新しいので、「最近なにが起きたか」は tail で見ます。
tail -n 3 logs/access.log
tail にはもう1つ、-n +N(N行目から最後まで)という形があります。レッスン14でも使った「CSV の見出し行を飛ばす」定番です。
tail -n +2 data.csv
wc ― 数える。wc は行数・単語数・文字数を出します。ほぼ常に -l(lines)を付けて「行数だけ」を使います。「1行=1件」のデータなら、行数がそのまま件数になります。
wc -l logs/access.log
grep 東京 data.csv | wc -l
3つとも、ファイル名を渡しても、パイプから受け取っても動きます。「絞り込む(grep)→ 数える(wc -l)」「加工する → 先頭だけ確認(head)」のように、パイプラインの最後を締めるのがこの3つの役どころです。
やってみよう
head -n 3 logs/access.log と tail -n 3 logs/access.log を打ち比べて、先頭と末尾が見えることを確認しましょう。次に wc -l logs/access.log で全体の行数を数え、tail -n +2 data.csv | wc -l で「見出しを除いたデータ件数」も出してみてください。
演習
logs/access.log の**行数(アクセス件数)**を数えてください。
ヒント1を見る
行数だけを数えるのは wc -l です。
ヒント2を見る
wc -l logs/access.log