新Linux入門|nlコマンドでテキストに行番号を付けてみよう!

 Linuxでテキストファイルを扱っているとき、「行番号があれば見やすいのに」と思うことはありませんか?
 特に設定ファイルやスクリプトを確認するとき、行番号があるとトラブルシューティングや修正作業がとても楽になります。

そんなときに便利なのが nlコマンド です。
このコマンドを使うと、ファイルの各行に自動的に行番号を付けて表示することができます。

📘 nlコマンドの概要

nl は “number lines” の略で、テキストファイルに行番号を付けて出力するコマンドです。
head や cat と似ていますが、nl の大きな特徴は「見やすく整列された行番号を付ける」点にあります。
スクリプトや設定ファイルの確認、デバッグなどに役立ちます。

📘 コマンド書式

nl [オプション] ファイル名

📗 例

[suzuki@AlmaLinux ~]$ nl /etc/passwd

⚙️ 主なオプションと説明

オプション説明
-b STYLE本文に行番号を付けるスタイルを指定(t:空行以外、a:全行など)。
-f STYLEフッタ部分の行番号スタイルを指定。
-h STYLEヘッダ部分の行番号スタイルを指定。
-i FORMAT行番号の増分(ステップ)を指定。デフォルトは1。
-n FORMAT行番号の表示形式を指定(右寄せ、左寄せなど)。
-w WIDTH行番号の表示幅を指定。
-s STRING行番号の後に挿入する文字列を指定(例:「:」など)。

🧩 -b, -f, -h で指定できるスタイル

aすべての行に行番号を付ける。
t空行を除く行に行番号を付ける(デフォルト)。
n空行のみに行番号を付ける。
p パターン正規表現に一致した行のみに行番号を付ける。

💡 ポイント
 通常は -b t(空行を除く行に番号を付ける)が使われますが、スクリプトやログ解析でパターン指定を行う場合は -b p'pattern' を使うと便利です。

🧪 使用例と出力解説

① /etc/passwd に行番号を付けて表示

[suzuki@AlmaLinux ~]$ nl /etc/passwd
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

💬 ファイルの先頭から順に行番号が自動で付与され、整列して表示されます。

② 行番号を3つ飛ばしで付ける(-i)

[suzuki@AlmaLinux ~]$ nl -i 3 /etc/passwd
     1  root:x:0:0:root:/root:/bin/bash
     4  bin:x:1:1:bin:/bin:/sbin/nologin
     7  daemon:x:2:2:daemon:/sbin:/sbin/nologin
    10  adm:x:3:4:adm:/var/adm:/sbin/nologin

💬 -i 3 で行番号を3ずつ増やして付けています。行間の確認などで便利です。

③ 行番号の幅を5桁にして表示(-w)

[suzuki@AlmaLinux ~]$ nl -w 5 /etc/passwd
    1  root:x:0:0:root:/root:/bin/bash
    2  bin:x:1:1:bin:/bin:/sbin/nologin
    3  daemon:x:2:2:daemon:/sbin:/sbin/nologin

💬 -w 5 により、行番号部分が5文字分確保され、桁が揃って見やすくなります。

④ 行番号と本文の間を「:」で区切る(-s)

[suzuki@AlmaLinux ~]$ nl -s: /etc/passwd
     1:root:x:0:0:root:/root:/bin/bash
     2:bin:x:1:1:bin:/bin:/sbin/nologin
     3:daemon:x:2:2:daemon:/sbin:/sbin/nologin

💬 -s オプションで「行番号の後ろに区切り文字」を設定できます。
レポート出力やスクリプト処理の中間結果などに使うと便利です。

✅ まとめ

  • nlコマンド は、テキストファイルに行番号を付けて出力する便利なコマンド。
  • -i で番号の増分、-s で区切り文字、-w で幅を調整できる。
  • -b や -p を使えば、空行や特定の行だけに番号を付けることも可能。
  • 見やすい整形出力で、ログ解析やスクリプト確認がぐっと快適になります。

💬 ファイルの中身をチェックしたり、コードを解析するときに nl はとても重宝します。
まずは nl /etc/passwd を実行して、どんなふうに行番号が付くのか試してみましょう!