cat -nオプションの使い方|Linuxで全ての行に行番号を付ける方法を解説
生徒
「先生、テキストファイルの中身を見たいときによくcatコマンドを使うんですが、行番号があったらもっと見やすいと思うんです。」
先生
「確かに、行番号があると読みやすくなりますよね。そんなときはcat -nオプションが便利ですよ。」
生徒
「えっ、そんなオプションがあるんですか?どうやって使うんですか?」
先生
「それでは、cat -nの基本的な使い方から、実際の例まで一緒に見ていきましょう!」
1. cat -nとは?
catコマンドは、Linuxでファイルの中身を表示する基本的なコマンドのひとつです。「キャット」と読みます。もともとの意味は「concatenate(連結する)」ですが、実際には「中身を見る」用途でよく使われます。
そのcatコマンドに-nオプションをつけると、すべての行に自動的に行番号をつけて表示してくれます。複数行のファイルを読むときに、どこを見ているのか分かりやすくなるので、とても便利な機能です。
2. 基本的な使い方
例えば、example.txtというファイルがあるとします。その中身を、行番号つきで表示したい場合は、以下のように入力します。
cat -n example.txt
1 こんにちは
2 今日も良い天気ですね
3 明日も晴れるといいですね
このように、行の先頭に数字が付いて表示されます。これがcat -nの特徴です。
3. 実際にファイルを作って試してみよう
まだexample.txtがない場合は、次のようにして作成できます。
echo -e "こんにちは\n今日も良い天気ですね\n明日も晴れるといいですね" > example.txt
この-eオプションは、\n(改行)を認識させるためのものです。そして、作成したファイルに対してcat -nを使えば、先ほどのように行番号つきで表示されます。
4. catだけじゃない!似たようなコマンドとの違い
cat -nと似たコマンドで、nlというものもあります。nlは「number lines(行に番号を付ける)」の略で、目的は同じですが、より細かい設定(空行の扱いや桁数の指定など)ができます。
nl example.txt
1 こんにちは
2 今日も良い天気ですね
3 明日も晴れるといいですね
見た目は似ていますが、cat -nはよりシンプルで直感的なので、初心者にはこちらの方が扱いやすいです。
5. cat -nとcat -bの違いに注意!
実はcatには、-bというオプションもあります。こちらは空行を除いて行番号をつけるという違いがあります。
たとえば、空行を含むファイルがあったとしましょう。
echo -e "1行目\n\n3行目" > sample.txt
このとき、cat -nはすべての行に番号をつけますが、
cat -n sample.txt
1 1行目
2
3 3行目
cat -bでは空行には番号をつけません。
cat -b sample.txt
1 1行目
2 3行目
どちらが便利かは目的次第ですが、cat -nは「すべての行に確実に番号をつけたい」場合に向いています。
6. cat -nはファイルが複数でも使える!
複数のファイルをまとめて番号付きで表示したいときも、cat -nは使えます。例えば、file1.txtとfile2.txtを連結して、通し番号で表示したい場合は次のようにします。
cat -n file1.txt file2.txt
1 ファイル1の1行目
2 ファイル1の2行目
3 ファイル2の1行目
4 ファイル2の2行目
このように、ファイルをまたいでも連番で行番号が振られるので、比較や確認作業の際にとても便利です。
7. 行番号つき出力を別ファイルに保存する方法
cat -nで表示した内容を、別のファイルとして保存しておきたいときは、リダイレクト(>)を使います。
cat -n example.txt > numbered.txt
このコマンドで、example.txtの内容に行番号をつけてnumbered.txtというファイルに保存できます。保存したファイルは、あとで印刷や共有するときにも便利です。