head -vオプションの使い方を完全ガイド!複数ファイル表示時にヘッダを必ず付ける方法
生徒
「Linuxのheadコマンドで、ファイルの中身を表示させたとき、ファイル名をちゃんと表示させたいんです。方法ってありますか?」
先生
「複数のファイルを表示するときは自動的にファイル名のヘッダが表示されますが、1つのファイルだけだと表示されないんですよね。そんなときは-vオプションを使えば大丈夫ですよ。」
生徒
「えっ?1つでもヘッダを表示できるんですか?」
先生
「はい。実際に-vの使い方を見ながら解説していきましょう。」
1. headコマンドとは?
Linuxのheadコマンドは、テキストファイルの先頭の数行だけを表示したいときに使います。ログファイルやCSVファイルの冒頭だけを確認する場合によく使われる便利なコマンドです。
基本的には最初の10行が表示されますが、-nオプションを使えば行数を指定することも可能です。
2. 通常のheadコマンドの挙動
複数のファイルを指定してheadコマンドを実行すると、自動的にファイル名がヘッダとして表示されます。
head file1.txt file2.txt
==> file1.txt <==
ファイル1の内容です
先頭の行が表示されます
==> file2.txt <==
ファイル2の内容です
こちらも同じように表示されます
ところが、1つのファイルだけを指定した場合は、下記のようにファイル名のヘッダが表示されません。
head file1.txt
ファイル1の内容です
先頭の行が表示されます
このように、ファイル名が表示されないと、何のファイルか分かりにくくなってしまいます。
3. -vオプションとは?
-vは「verbose(冗長な・丁寧な)」の略で、1つのファイルでもヘッダを必ず表示するためのオプションです。
コマンドの出力に必ずファイル名を付けたいときに使います。複数の出力をまとめて見るときなどに非常に役立ちます。
4. head -vの基本的な使い方
それでは実際に-vオプションを使ってみましょう。
head -v file1.txt
==> file1.txt <==
ファイル1の内容です
先頭の行が表示されます
このように、1つのファイルでも==> ファイル名 <==という形で、ヘッダがきちんと表示されます。
5. 複数ファイルとの組み合わせ
複数のファイルに対して-vを使うと、常にファイル名が表示されるようになります。
head -v file1.txt file2.txt
==> file1.txt <==
ファイル1の内容です
先頭の行が表示されます
==> file2.txt <==
ファイル2の内容です
先頭の行が表示されます
実は-vを使わなくても複数ファイルならヘッダは付きますが、スクリプトでの処理や明示的に表示を指定したいときには-vを付けておくと安全です。
6. head -vと-nの組み合わせ
-nオプションと一緒に使えば、特定の行数だけを表示しつつ、ヘッダも確実に表示できます。
head -v -n 3 file1.txt
==> file1.txt <==
1行目
2行目
3行目
このように、行数を制限してヘッダ付きで表示することができます。
7. head -vと-qの違い
-vと反対の意味を持つのが-q(quiet)オプションです。こちらはファイル名のヘッダを表示しないようにするオプションです。
それぞれの違いを表にすると、次のようになります。
| オプション | 効果 |
|---|---|
-v |
1つのファイルでもヘッダを表示する |
-q |
複数ファイルでもヘッダを非表示にする |
使い分けることで、出力の見た目や処理を柔軟にコントロールできます。
8. スクリプトやログ解析にも便利な-v
スクリプトやログ解析などで複数ファイルを順番に処理するとき、-vを使えば出力結果にファイル名が明示されるので、あとから見返すときに非常に分かりやすくなります。
たとえば、ある日付ごとのログファイルを一括で確認するときに便利です。
head -v -n 1 access-202309*.log
==> access-20230901.log <==
日時,IPアドレス,ステータス
==> access-20230902.log <==
日時,IPアドレス,ステータス
このように、同じ形式の複数ファイルでも、-vでファイル名付きにすれば見分けがつきやすくなります。