cat -bオプション|空行を除いて行番号を付ける
生徒
「Linuxでファイルの行に番号を付けて表示したいんですけど、どうすればいいですか?」
先生
「それならcatコマンドに-bオプションを付けると、空行を除いて番号を振ることができますよ。」
生徒
「空行は飛ばすんですか?全部に番号がつくと思ってました!」
先生
「実は、空行も含めて番号を振りたいなら-nを使います。-bは中身がある行だけに番号を付けたい時に便利なんです。」
1. cat -bとは?空行を除いて行番号を付ける便利なオプション
catコマンドは、Linuxでテキストファイルの内容を表示したり連結したりする基本コマンドですが、-bオプションを付けることで、空白行(空行)を除いた行番号の表示ができるようになります。
たとえば、プログラムや設定ファイルの内容を読みやすくしたいとき、「意味のある行だけに番号を振って確認したい」と思うことはありませんか? そんなときに活躍するのがcat -bです。
2. cat -bの基本的な使い方
まずは、普通にcatを使ってファイルを表示してみましょう。次のようなテキストファイルがあるとします。
cat sample.txt
Hello, Linux!
This is a test file.
Have a nice day.
このファイルは4行ありますが、うち2行目と4行目は空白(何も書かれていない)行です。これをcat -bで表示してみましょう。
cat -b sample.txt
1 Hello, Linux!
2 This is a test file.
3 Have a nice day.
空行には行番号が付かず、中身のある行だけに番号が振られていますね。
3. -bと-nの違いを理解しよう
-bと似たオプションに-nがあります。両者の違いは以下のとおりです。
-b:空行を除いた行にのみ番号を付ける-n:すべての行に番号を付ける(空行にも)
cat -n sample.txt
1 Hello, Linux!
2
3 This is a test file.
4
5 Have a nice day.
行番号を全体に均等に振りたいなら-n、中身のある行だけ番号が欲しい場合は-bを使いましょう。
4. 空行が重要な意味を持つ場合の注意点
テキストファイルの中には、空行が「区切り」や「見出しの間隔」として重要な意味を持つことがあります。cat -bを使えば、内容のある行に集中して読み取ることができるので、構造の把握やデバッグにも役立ちます。
特に設定ファイル(confファイルなど)やスクリプトの確認では、コメントや空行を無視してコードだけに注目したい場面が多く、-bはとても重宝します。
5. 行番号の表示幅と見やすさ
cat -bを使うと、行番号の桁は自動的に整列されます。番号のあとにはタブ文字が入り、内容との間にスペースが確保されるため、整った見た目で一覧しやすくなっています。
行番号が増えてもレイアウトが崩れないので、大量の行があるログファイルなどにも適しています。
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などを使えば十分です。