head -n コマンド情報まとめ
ターミナルの head -n コマンドについて、基本的な使い方から行数を指定するオプションの応用方法、tail -n コマンドとの違いなどを紹介しています。
head -nとは
head -n は、指定されたファイルや標準入力の最初の部分から、指定した行数だけを切り出して表示するためのLinux/macOSコマンドの機能です。
巨大なテキストファイルやログファイルを開くことなく、先頭の数行をサクッと確認したいときに非常に便利です。
オプション「-n」の意味と主要オプション
| オプション | 意味 |
|---|---|
-n 行数, --lines=行数 | 指定した行数分だけ先頭から出力する(行数の前にマイナス - を付けると、末尾の指定行数を除いたすべてを出力) |
-c バイト数, --bytes=バイト数 | 指定したバイト数分だけ先頭から出力する |
-q, --quiet, --silent | 複数のファイルを指定した際に、ファイル名を表示するヘッダーを出力しない |
-v, --verbose | 常にファイル名を表示するヘッダーを出力する |
-n オプションは、表示する行数を明示的に指定するために使用します。
なお、head -n 5 は head -5 のように省略して書くことも可能です。
GNU版の head では、-n -5 のように負の数値を指定すると、「末尾の5行を除外したすべての行」を出力することができます。
この挙動は環境によって異なる場合があるため注意してください。
よく使う組み合わせ
ファイルの先頭15行を表示する
head -n 15 example.txt
指定したファイルの先頭から15行分だけを表示します。
ログのヘッダー部分や、設定ファイルの先頭部分を素早く確認したい場合に最もよく使われる記述です。
末尾の10行を除外してすべて表示する
head -n -10 input.txt
ファイルの末尾10行だけを取り除いた、それ以外のすべての行を出力します。
不要なフッターやゴミデータが末尾にあるファイルを処理する際に役立ちます。
ディレクトリ内の最新ファイル5つを表示する
ls -t | head -n 5
ls -t コマンドで更新日時が新しい順にファイルを並べ替え、その中から先頭の5行(=最新の5ファイル)だけを絞り込んで表示します。
パイプラインを使って他のコマンドと組み合わせる際の定番パターンです。
head -n vs tail -n の違い
どちらもファイルの一部を切り出すコマンドですが、抽出する位置が異なります。
| 項目 | head -n | tail -n |
|---|---|---|
| 表示する位置 | ファイルの「先頭」部分 | ファイルの「末尾」部分 |
| デフォルト表示行数 | 10行 | 10行 |
| 主な用途 | 設定ファイルのヘッダー確認、フォーマットチェック | リアルタイムのログ監視(-f オプション)、エラーログ末尾の確認 |
head -n がファイルの書き出し部分を確認するのに適しているのに対し、tail -n は末尾に追加されていくログの監視などに適しています。
両者を組み合わせることで、「ファイルの11行目から20行目までを切り出す」といった高度な操作(例: head -n 20 file.txt | tail -n 10)も可能になります。
ユースケース
CSVファイルのヘッダー行(カラム名)を確認する
head -n 1 data.csv
ギガバイト単位の巨大なCSVファイルであっても、先頭の1行だけを瞬時に読み込んでカラム名(ヘッダー情報)を確認できます。
エディタで開いてフリーズする心配がありません。
コマンド結果のプレビュー表示
find . -name "*.log" | head -n 10
大量の出力が予想される検索コマンドなどの実行時に、ひとまず先頭の10行だけを表示させて動作が正しいかをプレビュー確認する際に活用できます。
AIエージェントが実行しようとした場合
AIエージェントの目的
AIエージェントは主に次のような目的で head -n を実行しようとすることがあります。
- ログファイルや設定ファイルの先頭部分を確認し、ファイルの構造やエラー情報を取得するため
- 大量の出力結果からプレビューを取得し、次のタスクに必要な情報を素早く整理するため
危険性
head -n コマンドは、ファイルの読み取り専用の操作であり、システムに変更を加えたり破壊的な処理を行ったりすることはありません。
そのため、危険性はなく、AIエージェントが実行しても問題ありません。
自動実行の許可設定
このコマンドは情報の取得や閲覧のみを行う安全な操作であるため、AIエージェントの自動実行(許可)設定をオンにしても問題ありません。