head -cオプションの使い方を完全解説!初心者でもわかるバイト数指定表示の基本
生徒
「Linuxのheadコマンドで、最初の何バイトだけ表示する方法ってありますか?」
先生
「はい、それには-cオプションを使います。行ではなく、バイト単位で指定できますよ。」
生徒
「バイトって何ですか?行数とは違うんですか?」
先生
「バイトはデータの大きさを表す単位です。文字数とは必ずしも一致しないので、丁寧に説明していきますね!」
1. head -cオプションとは?
Linuxコマンドのheadは、ファイルの先頭部分を表示するためのコマンドです。通常は-nオプションで「行数」を指定しますが、-cオプションを使うと「バイト数」で指定できます。つまり、ファイルの最初から「◯バイト分」だけを抜き出して表示することができます。
head -cは、テキストファイルやバイナリファイルの一部だけを確認したいときにとても便利です。
2. バイトとは?初心者でもわかるように解説
「バイト(byte)」とは、データの大きさを表す単位で、1バイトでアルファベット1文字が表現できます。たとえば、「A」や「B」は1バイトです。ですが、日本語の「あ」や「漢字」などは、1文字でも2バイト〜3バイト以上になることがあります。
つまり、「5バイトだけ表示する」といっても、文字数とは一致しないことがあるので注意が必要です。これは、ファイルの中身を正確に一部だけ抜き出したい場面で重要になります。
3. 基本的な書き方と使い方
head -cオプションの基本的な使い方は、以下のように書きます。
head -c バイト数 ファイル名
例えば、「sample.txt」というファイルの先頭から10バイトだけ表示したい場合は、以下のように実行します。
head -c 10 sample.txt
こんにちは世
この結果では、10バイト分のデータが表示されます。たとえば「こ」「ん」「に」は1文字ずつで3バイト、「ち」「は」もそれぞれ3バイト近くになるので、合計して約10バイト分になる文字数だけが表示されます。
4. head -nとの違いは?
headコマンドには-nオプションもありますが、こちらは「行数」を指定するものです。例えば-n 3なら、上から3行分を表示します。
一方で-cは「バイト数」を指定するので、改行を含めたデータサイズで判断します。細かく内容を制御したいときは-c、行単位で見たいときは-nを使いましょう。
5. head -cの使用例をいくつか紹介
ここではhead -cを使った、よくあるパターンや便利な例をいくつか紹介します。
■ ファイルの先頭の数バイトだけ表示したいとき
head -c 5 data.txt
12345
データファイルの冒頭だけ確認したいときに使えます。
■ headとパイプを組み合わせて、コマンドの出力を制限
ls -l | head -c 100
合計 12
-rw-r--r-- 1 user user 20 9月 16 10:00 a.txt
-rw-r--r--
ls -lの出力を100バイトだけに制限しています。
6. head -cの注意点
-cオプションを使うと、文字が途中で切れてしまうことがあります。特に日本語(マルチバイト文字)は、1文字が複数バイトなので、途中で区切られると文字化けの原因になります。
そのため、日本語テキストを対象にする場合は、正確な文字の数ではなくバイト数であることを意識して使いましょう。
7. tail -cとの違い
head -cは「先頭からバイト数分だけ」表示しますが、逆に「末尾から表示したい」ときはtail -cを使います。
tail -c 10 sample.txt
るの内容です。
このように、head -cとtail -cを組み合わせて使えば、ファイルの先頭や末尾を細かく確認できます。
8. head -cとddコマンドの違い
Linuxには同じようにバイト単位で読み取るddというコマンドもありますが、使い方が少し複雑です。
ddは入出力の制御が細かくできる一方、head -cは「とりあえず先頭を少し確認したい」ときに直感的に使えるのがメリットです。