cat -bオプション|空行を除いて行番号を付ける
生徒
「Linuxでファイルの行に番号を付けて表示したいんですけど、どうすればいいですか?」
先生
「それならcatコマンドに-bオプションを付けると、空行を除いて番号を振ることができますよ。」
生徒
「空行は飛ばすんですか?全部に番号がつくと思ってました!」
先生
「実は、空行も含めて番号を振りたいなら-nを使います。-bは中身がある行だけに番号を付けたい時に便利なんです。」
1. cat -bとは?空行を除いて行番号を付ける便利なオプション
cat(キャット)コマンドは、Linuxでファイルの中身を画面に表示したり、複数のファイルを一つに繋げたりするときに最もよく使われる基本中の基本となるコマンドです。このコマンドに-bというオプションを付け加えることで、「文字が入力されている行だけに限定して行番号を表示する」という便利な機能が使えます。
プログラミング未経験の方にとって、ソースコードや設定ファイルを読み解くのは大変な作業ですよね。特に、可読性を上げるために意図的に入れられた「空行(何も書いていない行)」までカウントしてしまうと、実際のコードが何行あるのか分からなくなることがあります。そんな時、cat -bを使えば、意味のある行だけを正確に把握できるため、作業効率が格好良くアップします。
-bは「blank(空白)」を飛ばして「body(本文)」がある行だけを数えると覚えると忘れにくいですよ。
例えば、次のような「買い出しリスト」のファイル(memo.txt)があるとします。途中に読みやすくするための空行が含まれています。
cat memo.txt
リンゴ
バナナ
オレンジ
牛乳
このファイルに対して-bオプションを使用すると、実行結果は以下のようになります。
cat -b memo.txt
1 リンゴ
2 バナナ
3 オレンジ
4 牛乳
このように、中身がある行だけに順番に番号が振られ、空行はそのまま飛ばされているのがわかりますね。これがcat -bの最大のメリットです。
2. cat -bの基本的な使い方
まずは、最もシンプルな手順でcat -bの動きを確認してみましょう。Linuxの操作に慣れていない方でも、実際にコマンドを打ってみると「空行を飛ばす」という意味が直感的に理解できるはずです。
例として、挨拶と空行が混ざった「sample.txt」という名前のテキストファイルを用意しました。このファイルには全部で5行のデータがありますが、そのうち2行目と4行目は何も文字が入っていない「空行」の状態です。
cat sample.txt
Hello, Linux!
This is a test file.
Have a nice day.
このファイルに対して、行番号を表示させる-bオプションを適用して実行してみます。ターミナル(黒い画面)で次のように入力してください。
cat -b sample.txt
1 Hello, Linux!
2 This is a test file.
3 Have a nice day.
実行結果を見ると、文字が入力されている行の左側にだけ「1」「2」「3」と番号が表示されましたね。一方で、2行目と4行目の空白部分には番号が振られず、そのまま詰められずに表示されています。
このようにcat -bを使えば、文章のボリュームを把握したい時や、特定のメッセージが「上から数えて何番目の有効な行にあるか」をひと目で特定できるようになります。プログラミングのコードを読む際、コメントの間の空行を無視して実際の命令文だけを数えたいときなどに非常に重宝するテクニックです。
3. -bと-nの違いを理解しよう
catコマンドで行番号を表示する際、最も迷いやすいのが-bオプションと-nオプションの使い分けです。どちらも番号を振るという点では同じですが、「空行をカウントに含めるかどうか」という決定的な違いがあります。
cat -b (number-nonblank)
文字がある行だけに番号を振ります。プログラムの有効なコード行数を知りたい時に最適です。
cat -n (number)
空行を含めたすべての行に番号を振ります。ファイル全体の物理的な行数を確認したい時に使います。
それでは、先ほどの「sample.txt」を使って、-nオプションの実行結果を見てみましょう。ターミナルで以下のコマンドを入力します。
cat -n sample.txt
1 Hello, Linux!
2
3 This is a test file.
4
5 Have a nice day.
実行結果を-bの時と比較すると、2行目と4行目の「何も書いていない行」にもしっかりと番号が振られているのがわかります。このファイルは全部で5行の構成であることが一目で把握できますね。
- 「何行目に何が書いてあるか」を正確に伝えたい(共同作業など)場合は、共通の物差しとなる
-nがおすすめです。 - 「実際の文章が何行あるか」に集中して読み進めたい場合は、余計な番号を表示しない
-bを使うと画面がスッキリして読みやすくなります。
このように、目的が「全体のボリューム把握」なのか「中身の精査」なのかによって、これら2つのオプションを賢く使い分けましょう。どちらを使うべきか迷ったときは、まず -n で全体を見てから、空行が邪魔だと感じたら -b に切り替えるのがスムーズです。
4. 空行が重要な意味を持つ場合の注意点
テキストファイルやソースコードにおいて、空行は単なる隙間ではありません。段落の区切りや、処理のまとまり(ブロック)を視覚的に分かりやすくする「デザイン」の役割を持っています。しかし、デバッグ作業や設定ファイルの確認では、この空行が多すぎると、肝心の「設定値」や「命令文」がどこにあるのかを見失ってしまうことがあります。
例えば、以下のようなWebサーバーの設定をイメージした「config.txt」というファイルがあるとします。設定項目が離れていて、少し読みづらい状態です。
cat config.txt
ServerName localhost
Port 80
DocumentRoot /var/www/html
このファイルに対して cat -b を実行すると、空行の存在感はそのままに、実力のある行(データが入っている行)だけにスポットライトを当てることができます。
cat -b config.txt
1 ServerName localhost
2 Port 80
3 DocumentRoot /var/www/html
このように表示されることで、「実際に有効な設定は3つある」ということが瞬時に判断できます。もしこれが cat -n だと、空行にも番号が振られるため、「5行のファイル」として認識してしまい、パッと見た時にどれが重要な行なのか判断を誤る可能性があります。
cat -b を使えば「コードが存在する行」だけに集中できるため、無駄な空白に惑わされずにロジックのミスを見つけやすくなります。特に数百行を超える設定ファイルを確認する場面で、その真価を発揮します。
空行が持つ「読みやすさ」というメリットを活かしつつ、cat -b で「情報の密度」を正確に把握する。この使い分けができるようになると、Linuxでのファイル操作がより一層スムーズになります。
5. 行番号の表示幅と見やすさ
cat -bを使用すると、行番号の桁数はシステムによって自動的に整列されます。デフォルトでは6桁分の幅が確保され、番号の後には「タブ文字」という特殊な空白が挿入される仕組みです。これにより、行番号とファイルの内容がくっついてしまうことがなく、常に整ったレイアウトで内容を閲覧できるのが大きなメリットです。
プログラミング未経験の方の中には、「行数が増えたら数字がズレて読みづらくなるのでは?」と心配される方もいるかもしれません。しかし、cat -bなら心配無用です。例えば、1桁の行番号と3桁の行番号が混在しても、開始位置がピシッと揃います。
以下の「shopping_list.txt」という、少し長めのリストを想定した例を見てみましょう。
cat -b shopping_list.txt
1 たまねぎ
2 にんじん
...
100 じゃがいも
101 カレールー
このように、100行を超えるような場面でも数字が右側に揃う(右詰め)ため、視認性が損なわれません。大量のデータが記録されているシステムログや、長大な設定ファイルをスクロールしながら確認する場合でも、行番号が目印となって「今どこを読んでいるか」を迷わずに把握できます。
6. 他のcatオプションとの組み合わせ例
catコマンドは、-bだけでなく他のオプションと組み合わせることもできます。ただし、-nと-bは同時に使えません。指定した場合は、-bが優先されます。
たとえば、-bと-T(タブを^Iで表示)を組み合わせると次のようになります。
cat -bT sample.txt
1 Hello,^ILinux!
2 This^Iis^Ia^Itest^Ifile.
3 Have^Ia^Inice^Iday.
このように、タブ文字がどこにあるのかを確認しながら、行番号も見やすく表示できます。
7. sedやawkとの違いと使い分け
行番号を付けるという操作は、sedやawkなどのテキスト処理ツールでも可能ですが、cat -bはとにかく手軽で覚えやすいのが特徴です。
簡単に番号を確認したいだけならcat -bが最適です。プログラムで複雑な処理や条件分岐が必要な場合にのみawkなどを使えば十分です。
まとめ
本記事ではLinuxの基本コマンドであるcatコマンドの中でも、特に実務や学習の現場で役立つcat bオプションについて詳しく解説してきました。catコマンドはLinux初心者が最初に触れる代表的なコマンドの一つであり、ファイル内容の表示や確認を行う際に欠かせない存在です。その中でもcat bは空行を除いて行番号を付けるという特徴を持ち、ファイルの中身をより見やすく整理して確認するための重要な機能となります。
cat bオプションの最大のポイントは、空行を無視して意味のある行だけに番号を振るという点にあります。これによりプログラムコードや設定ファイルのように空白行が多く含まれるファイルでも、実際に記述されている重要な行数だけを正確に把握することができます。Linuxコマンドを使った作業では、こうした細かな違いを理解して使い分けることが効率化の鍵となります。
cat bの基本的な使い方を振り返る
cat bの基本構文は非常にシンプルで、対象のファイル名を指定するだけで実行できます。初心者でもすぐに扱えるのが魅力です。
cat -b sample.txt
1 Hello, Linux!
2 This is a test file.
3 Have a nice day.
このように実行することで、空行を飛ばしながら内容のある行だけに番号が付与されます。Linux初心者の方はまずこの基本動作を確実に理解しておくことが重要です。
cat nとの違いを正しく理解する
cat bとよく比較されるのがcat nオプションです。cat nはすべての行に番号を付けるのに対して、cat bは空行を除外します。この違いを理解して使い分けることで、ファイルの用途に応じた最適な表示方法を選択できます。
cat -n sample.txt
1 Hello, Linux!
2
3 This is a test file.
4
5 Have a nice day.
実務では全体の行数を確認したい場合はcat n、実際の内容だけに集中したい場合はcat bを使うという判断が求められます。Linuxコマンドの理解を深める上で非常に重要なポイントです。
実務での活用シーンを理解する
cat bは単なる学習用コマンドではなく、実際の開発現場やサーバー運用においても活用されます。特に設定ファイルやログファイルの確認時には、空行を除いた有効な行だけを把握することで、ミスの発見や作業効率の向上につながります。
cat -b config.txt
1 ServerName localhost
2 Port 80
3 DocumentRoot /var/www/html
このように実際に意味を持つ設定項目だけを整理して確認できるため、初心者でも直感的に内容を理解しやすくなります。Linuxの基本操作としてcat bを身につけておくことで、将来的なスキルアップにも大きく貢献します。
他のオプションとの組み合わせ
cat bは他のオプションと組み合わせることでさらに便利に使うことができます。例えばタブ文字の可視化や特殊文字の確認などと併用することで、ファイルの構造をより深く理解することが可能です。
cat -bT sample.txt
1 Hello,^ILinux!
2 This^Iis^Ia^Itest^Ifile.
3 Have^Ia^Inice^Iday.
このようにタブの位置を確認しながら行番号を付けることで、データの整形やトラブルシューティングにも役立ちます。Linuxコマンドは組み合わせることで真価を発揮するため、少しずつ応用力を高めていくことが大切です。
初心者が意識すべきポイント
Linux初心者がcat bを学ぶ際には、単にコマンドを覚えるだけでなく、どのような場面で使うのかを意識することが重要です。例えばコードレビューや設定確認ログ分析などの場面では、空行の有無が読みやすさに大きく影響します。その中でcat bを使うことで重要な情報だけを抽出し、効率よく理解することができます。
またLinuxコマンドは日常的に使うことで自然と身についていきます。最初は難しく感じるかもしれませんが、cat bのような基本コマンドを繰り返し使うことで、コマンドライン操作への抵抗感も徐々に減っていきます。プログラミング未経験者でも一歩ずつ確実にスキルを積み上げていくことが可能です。
cat bはシンプルでありながら実務に直結する非常に重要なコマンドです。Linuxの基礎をしっかり固めるためにも、本記事で学んだ内容を繰り返し実践し、実際の環境で試してみることをおすすめします。Linuxコマンドの理解は積み重ねによって確実に成長していきますので、焦らず継続して学習を進めていきましょう。
生徒
cat bは空行を除いて番号を付けるコマンドなんですね
先生
そうです重要な行だけを見やすくするための便利な機能です
生徒
cat nとの違いもよく分かりました
先生
目的に応じて使い分けることが大切です
生徒
実際の設定ファイルでも役立ちそうです
先生
現場では頻繁に使う基本コマンドの一つです
生徒
他のオプションと組み合わせるのも面白そうです
先生
組み合わせることでより高度な操作が可能になります
生徒
これからたくさん使って覚えていきます
先生
継続して使うことで自然と身についていきますよ