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
の方がタイプ数が少ないじゃないか。