head -qオプションの使い方を完全ガイド!複数ファイルを表示してもヘッダを付けない方法
生徒
「Linuxで複数のテキストファイルを表示したいんですが、ファイル名が毎回表示されてしまいます。これって消せないんですか?」
先生
「それはheadコマンドの仕様ですね。複数ファイルを表示するときは、自動でファイル名がヘッダとして付きます。でも、それを消す方法もありますよ。」
生徒
「本当ですか?どうすれば消せるんですか?」
先生
「-qオプションを使えば、複数ファイルでもヘッダを非表示にできます。実際の例で見ていきましょう!」
1. headコマンドとは?
headコマンドは、Linuxでテキストファイルの「先頭部分」だけを表示するための基本コマンドです。デフォルトでは最初の10行を表示しますが、オプションを使うことで行数の変更なども可能です。
たとえば、ログファイルや大量のデータを一部だけ確認したいときに便利です。
2. 通常のheadコマンドの挙動
複数のファイルをheadコマンドで表示すると、ファイル名がヘッダとして自動で表示されます。
head file1.txt file2.txt
==> file1.txt <==
これはファイル1の内容です
先頭の数行だけが表示されます
==> file2.txt <==
これはファイル2の内容です
こちらも先頭の行だけが表示されます
このように、どのファイルの内容なのかが分かるように、==> ファイル名 <==というヘッダが表示されます。
3. -qオプションとは?
-qはquiet(静かに)の略で、複数ファイルを対象としてもヘッダを表示しないようにするオプションです。これを使えば、複数ファイルでもシンプルに中身だけを取り出せます。
4. head -qオプションの使い方
それでは、-qオプションを実際に使ってみましょう。
head -q file1.txt file2.txt
これはファイル1の内容です
先頭の数行だけが表示されます
これはファイル2の内容です
こちらも先頭の行だけが表示されます
このように、ファイル名のヘッダが消えて、中身だけが連続して表示されます。
5. -vオプションとの違い
-qと逆の動きをするのが-vオプション(--verbose)です。1つのファイルしか指定していないときでも、あえてヘッダを表示したい場合に使います。
head -v file1.txt
==> file1.txt <==
これはファイル1の内容です
先頭の数行だけが表示されます
つまり、表示の制御をしたいときに-qと-vを使い分けると便利です。
6. -nオプションと組み合わせて行数も制御しよう
head -qは、他のオプションと組み合わせて使うこともできます。特によく使われるのが-nオプションで、表示する行数を指定できます。
head -q -n 5 file1.txt file2.txt
これはファイル1の先頭5行
(省略)
これはファイル2の先頭5行
(省略)
このように、ファイル名の表示なしで、それぞれのファイルの最初の5行だけを確認できます。
7. catコマンドとの違いも知っておこう
初心者の方にはよく混乱されるのがcatコマンドとの違いです。catはファイル全体を一気に表示するのに対し、headは「先頭の数行だけ」を表示します。
たとえば、大きなログファイルを扱うときに、catでは画面に収まりきらない内容が表示されてしまいますが、headを使えば一部だけで済みます。さらに-qをつければ、複数ファイルでもスッキリとした見た目になります。
8. head -qが便利な場面
例えば、複数のCSVファイルの先頭行(見出し部分)だけを確認したい場合などに、-qはとても便利です。
head -q -n 1 sales1.csv sales2.csv
商品ID,商品名,価格
商品ID,商品名,価格
このように、ヘッダが繰り返されているかどうかを簡単に比較できます。もし-qを付け忘れると、ファイル名の表示が入ってしまい、見た目がゴチャつきます。
9. head -qを使う際の注意点
-qオプションは、複数ファイルを処理するスクリプトやバッチ処理でも非常に役立ちますが、どのファイルの内容かが分からなくなる可能性もあります。そのため、ファイル名を残したい場合は-vを使うなど、目的に応じて使い分けましょう。