はじめに
こんにちは!今回はheadコマンドについて解説します。
headはファイルの先頭行を表示するコマンドです。ログファイルの最初の内容を確認したり、大きなファイルの構造を把握したり、毎日使う超基本的なコマンドですね。
「ファイルの最初だけ見る」って感じです。tailと対になるコマンドで、どちらもよく使います。
headコマンドとは
headは、ファイルの先頭の行を表示する外部コマンドです。デフォルトでは最初の10行を表示します。
大きなファイル(ログファイルやデータファイル)の中身を確認する時に便利。全部読み込む必要がなく、サッと先頭だけ見られます。複数ファイルにも対応しており、それぞれのファイル名とともに内容が表示されます。
基本構文
|
|
ファイルの先頭行を表示します。デフォルトでは最初の10行が表示されます。
主なオプション
| オプション | 説明 |
|---|---|
-n NUM |
最初のNUM行を表示(デフォルト: 10) |
-n +NUM |
NUM行目以降を全て表示 |
-c NUM |
最初のNUMバイトを表示 |
-q |
ファイル名ヘッダを表示しない(quiet) |
-v |
常にファイル名ヘッダを表示(verbose) |
使用例
例1: 基本的な使い方(先頭10行)
|
|
実行結果:
|
|
デフォルトで最初の10行を表示します。
例2: 指定した行数を表示
|
|
実行結果:
|
|
最初の5行だけを表示。-nオプションで行数を指定できます。
例3: 最初の1行だけ表示
|
|
実行結果:
|
|
最初の1行を表示。ヘッダ行の確認に便利。
例4: 複数ファイルを表示
|
|
実行結果:
|
|
複数ファイルを指定すると、各ファイルのヘッダとともに先頭行が表示されます。
例5: ファイル名ヘッダを表示しない
|
|
実行結果:
|
|
-q(quiet)オプションでファイル名ヘッダを非表示。複数ファイルをまとめて表示できます。
例6: バイト数で指定
|
|
実行結果:
|
|
行数ではなく、バイト数で指定。最初の50バイトを表示します。
例7: ログファイルの確認
|
|
実行結果:
|
|
ログファイルの最初20行を確認。大容量ログの概要把握に便利。
例8: パイプで他のコマンドに渡す
|
|
実行結果:
|
|
大きなファイルから先頭100行を取り出し、その中から「error」を含む行を検索。処理を軽くできます。
例9: 指定行目以降を表示(-n +N)
|
|
実行結果:
|
|
-n +5で5行目までを表示。与える行数が少ないと効果的です。
例10: csvファイルの先頭を確認
|
|
実行結果:
|
|
CSVファイルのヘッダ行を確認。カラム構成を素早く把握できます。
例11: 複数ファイルをまとめて確認(-vオプション)
|
|
実行結果:
|
|
-v(verbose)で常にファイル名を表示。複数ファイル比較に便利。
例12: スクリプトの先頭を確認
|
|
実行結果:
|
|
シェルスクリプトの最初の行(shebang)とコメント部分を確認。
Tips・注意点
1行だけ取得する場合はheadを使う
|
|
最初の1行だけが必要な場合はhead -n 1が最も簡単。
大きなファイルの確認にはheadが便利
|
|
全体を読み込まずに先頭だけ確認できるので、大容量ファイルに最適。
標準入力からも読み込める
|
|
ファイルだけでなく、標準入力(パイプ)からも読み込めます。
バイト数指定は改行を考慮しない
|
|
バイト数指定は行の途中で切れることがあります。行単位が必要なら-nを使いましょう。
実践的な使い方
ログファイルの最新エラーを確認
|
|
ログの先頭50行から最後のエラー5件を表示。問題を素早く把握できます。
大きなデータファイルの構造確認
|
|
CSVファイルのヘッダとレコード数を確認。データ全体の概要を把握。
ログローテーション確認
|
|
複数のログファイルから最新の情報を確認。ローテーション状況がわかります。
テキストファイルのエンコーディング確認
|
|
ファイルの先頭から判定。BOM(Byte Order Mark)の有無などが確認できます。
まとめ
headコマンドのポイント:
- ファイルの先頭行を表示する基本コマンド
- -n NUM: 最初のNUM行を表示(デフォルト: 10)
- -c NUM: 最初のNUMバイトを表示
- -q: ファイル名ヘッダを非表示
- -v: ファイル名ヘッダを常に表示
- 複数ファイル対応
- 標準入力(パイプ)対応
- よく使う組み合わせ:
head -n 1,head -n 5 | grep,head -n + tail
ファイルの確認は日々の運用の基本。大容量ファイルでもheadを使えば一瞬で先頭が見られますよ!