head コマンド 2016/11/26
テキストファイルまたは標準入力の先頭の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行を抜き出すコマンド
インストール 2016/03/17
Coreutilsというパッケージに入っているので、CentOSにもUbuntuにも始めから入っている。
オプション 2016/11/28
-- というパラメータを渡すとそれ以降のパラメータをオプションではなくファイル名とみなしてくれるので、
- で始まるファイル名を扱いたい場合は -- を使うとよい。
抽出する量に関するオプション 2016/11/14
-cバイト数- バイト数を指定
-n行数- 行数を指定
その他のオプション 2016/11/14
-q- 複数ファイルを指定してもファイル名の出力はしない
-v- ファイル1つだけの場合も、複数ファイルのときと同様にファイル名を出力する
--help- ヘルプ表示
--version- バージョン表示
sedコマンドで同じことをするには 2016/11/26
先頭のn行を抜き出すのであればsedコマンドでも同じことはできる。
$ sed -n 1,10p hoge.txt
または
$ sed 10q hoge.txt
headデフォルトの10行以外のケースでは、sedの方がタイプ数が少ないじゃないか。