head コマンド

テキストファイルまたは標準入力の先頭のn行を抜き出すコマンド。行単位ではなくバイト単位での指定も可能。デフォルトでは先頭の10行を抜き出す。

行数は -n オプションで、バイト単位であれば -c オプションで指定する。

(-n-c を指定するぐらいなら実はsedコマンドのほうがキータイプ数が少ない。)

先頭の10行を表示

$ head -n10 hoge.txt

-n10 は分けて書いてもよい。

$ head -n 10 hoge.txt

n は省略でき、ハイフンと数字だけでよい。

$ head -10 hoge.txt

先頭10行は head のデフォルト動作なので、オプション全部省略。

$ head hoge.txt

パイプを使う例

$ cat hoge.txt | head

先頭の10バイトを表示 (行数ではなくバイト数で指定)

$ head -c10 hoge.txt

複数のファイルを指定した場合は、ファイル名とともに表示する。

$ head foo.txt bar.txt
==> foo.txt <==
...
==> bar.txt <==
...

関連

インストール

Coreutilsというパッケージに入っているので、CentOSにもUbuntuにも始めから入っている。

オプション

-- というパラメータを渡すとそれ以降のパラメータをオプションではなくファイル名とみなしてくれるので、 - で始まるファイル名を扱いたい場合は -- を使うとよい。

抽出する量に関するオプション

-c バイト数
バイト数を指定
-n 行数
行数を指定

その他のオプション

-q
複数ファイルを指定してもファイル名の出力はしない
-v
ファイル1つだけの場合も、複数ファイルのときと同様にファイル名を出力する
--help
ヘルプ表示
--version
バージョン表示

sedコマンドで同じことをするには

先頭のn行を抜き出すのであればsedコマンドでも同じことはできる。

$ sed -n 1,10p hoge.txt

または

$ sed 10q hoge.txt

headデフォルトの10行以外のケースでは、sedの方がタイプ数が少ないじゃないか。

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク