テキストファイルまたは標準入力の先頭のn行を抜き出すコマンド。行単位ではなくバイト単位での指定も可能。デフォルトでは先頭の10行を抜き出す。
行数は-n
オプションで、バイト単位であれば-c
オプションで指定する。
(-n
や-c
を指定するぐらいなら実はsed
コマンドのほうがキータイプ数が少ない。)
先頭の10行を表示
$ head -n10 hoge.txt
-n
と10
は分けて書いてもよい。
$ 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 <==...
関連
tail
コマンド: 先頭ではなく最後のn行を抜き出すコマンドCoreutilsというパッケージに入っているので、CentOSにもUbuntuにも始めから入っている。
--
というパラメータを渡すとそれ以降のパラメータをオプションではなくファイル名とみなしてくれるので、-
で始まるファイル名を扱いたい場合は--
を使うとよい。
-c
バイト数-n
行数-q
-v
--help
--version
先頭のn行を抜き出すのであればsed
コマンドでも同じことはできる。
$ sed -n 1,10p hoge.txt
または
$ sed 10q hoge.txt
head
デフォルトの10行以外のケースでは、sed
の方がタイプ数が少ないじゃないか。