こんにちは、たねやつです。
このシリーズでは、Linuxの基本的なコマンドを一つずつ取り上げ、その使い方を具体的な例とともに解説していきます。今回は、ファイルの先頭部分を表示するheadコマンドです。
headコマンドとは?
headコマンドは、その名の通り、ファイルや標準入力の先頭部分(head)を表示するためのコマンドです。デフォルトでは先頭の10行を表示します。巨大なログファイルやデータファイルの形式を素早く確認したい場合に、ファイル全体を読み込むことなく中身を覗けるので非常に便利です。
主なオプション
| オプション | 説明 |
|---|---|
-n [行数] |
--lines=[行数]の略。表示する行数を指定します。-n 20や-20のように指定できます。 |
-c [バイト数] |
--bytes=[バイト数]の略。行単位ではなく、先頭から指定したバイト数だけ表示します。 |
-q |
--quiet or --silentの略。複数のファイルを指定した際に、ファイル名ヘッダ(==> file.txt <==)を表示しません。 |
-v |
--verboseの略。常にファイル名ヘッダを表示します。 |
具体的な使用例
状況1: ログファイルの最初の数行だけを確認したい
syslogなどの巨大なログファイルが、どのような形式で出力されているか、最初の部分だけを見て確認したい場面です。
head /var/log/syslog
デフォルトで先頭の10行が表示されます。
状況2: CSVファイルのヘッダ行と最初の5件のデータを確認したい
data.csvというカンマ区切りのデータファイルがあり、ヘッダ(項目名)と最初の数件のデータを見て、データ構造を把握したい場面です。ヘッダ行を含めて6行表示すれば目的を達成できます。
head -n 6 data.csv
指定した通り、先頭の6行が表示されます。
状況3: 複数のファイルの先頭部分を一度に確認したい
app1.logとapp2.logという2つのログファイルの出だしを、それぞれ比較して確認したい場面です。
head app1.log app2.log
==> app1.log <== のようなヘッダで区切られ、それぞれのファイルの先頭10行が表示されます。
状況4: パイプラインと組み合わせて、処理結果の先頭だけを見る
ls -tで更新日時順にソートしたファイル一覧のうち、最新の5件だけを知りたい場面です。
ls -t | head -n 5
ls -tの出力結果がパイプ(|)を通じてheadコマンドに渡され、その先頭5行だけが表示されます。このように他のコマンドと組み合わせることで、様々な情報の「トップN」を簡単に取得できます。
最後に
今回はheadコマンドについて解説しました。対になるtailコマンドと合わせて使うことで、ファイルやデータの任意の部分を効率的に確認することができます。特にパイプラインとの組み合わせは強力で、コマンドラインでのデータ処理の幅を広げてくれます。