本文へスキップ
BecomeCoder

Linuxコマンドコース · 第3章 パイプとフィルタ · レッスン17

head・tail・wc ― 部分表示と数え上げ

ブラウザで完結

導入

ここまでのレッスンでも 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.logtail -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

実際に動かしてみよう

下の端末にコマンドを打って Enter を押すと、その場で結果が返ります。本文で出てきたコマンドを実際に試しながら進めましょう(ファイルを消しても「最初からやり直す」で元に戻ります)。

Linux シェル(シミュレート)

ブラウザ内でコマンドを試せる仮想シェルを読み込みます(本物のLinuxカーネルではなく学習用の再現です)。
スクロールして表示された時点でも自動で読み込まれます。