エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


Linuxのnlは行番号を付与してファイルの内容を表示するコマンド

      2020/07/27

Linuxの nlコマンドの解説

 
Linuxのコマンドでファイルに行番号を表示するコマンド「nl」について解説します。
 
テキストファイルに行番号を表示するだけであれば「cat -b file_name」のように「cat」コマンドでも可能です。
 
ですが、「nl」コマンドは行番号を表示するための専用コマンドですので、「cat」コマンドより細かな指定をした行番号表示処理を行うことが可能となっています。
 
ちなみに、「nl」は「Number Line(行番号)」の略です。
 
 
もう一つちなみに、「nl」の逆の「ln」というコマンドもあります。
「ln」コマンドはハードリンクやシンボリックリンクを設定するためのコマンドで、「link」の略になっています。お間違いのないように。
 
 
catコマンドに関しては、下記の記事で詳しく解説していますので、あわせて参考にしてください。
Linuxでファイルの内容を表示するcatコマンドの解説。more、lessで代替も
 
 

ファイルの内容を行番号を付与して表示する「nl」コマンド

 
「nl」コマンドは、ファイルの内容を行番号付で表示します。
 
 

nlコマンドの基本的な使用例

 
「nl」コマンドの基本的な使用例としては以下のようになります。
 
ファイルの内容を表示します。
 

 
 
「nl」コマンドのデフォルトでは、空白行には行番号を付与しません。
デフォルトの表示形式をオプションを付けた状態で表現すると以下の表記となります。
 

 
「-b」オプションは行番号を付与するスタイルを指定するオプションで、「t」は空行以外に行番号を付番するスタイルです。
 
「-b」オプションのその他のスタイルとしては、「a」はすべての行に対して行番号を付与するスタイルで、「n」は行番号を表示しないスタイルがあります。
 
 
また、catコマンドでは「-n」オプションを使うことで同様に行番号を表示することができます。
 

 
 

nlコマンドの主なオプション

 
nlコマンドの主なオプションは以下の通りとなっています。
 

オプション 説明
-i行数、–line-increment=行数 行番号の増分を指定する
-l行数、–join-blank-lines=行数 指定した数以下の空行を 1つとして数える
-w幅、–number-width=幅 行番号を表示する列の幅を指定する
-nフォーマット、–number-format=フォーマット 行番号の出力形式を指定する
-s文字列、–number-separator=文字列 行番号の後ろの文字列を指定する
-v行番号、–starting-line-number=行番号 論理改ページの先頭行番号を指定する
-d区切り、–section-delimiter=区切り 論理ページの区切り記号を指定する(2文字で指定。1文字だけの指定の場合は 2文字目は「:」を指定したものとする)
-p、–no-renumber 論理改ページで行番号をリセットしない
-bスタイル、–body-numbering=スタイル 本文の行番号のスタイルを指定する
-fスタイル、–footer-numbering=スタイル フッタの行番号のスタイルを指定する
-hスタイル、–header-numbering=スタイル ヘッダの行番号のスタイルを指定する

 
 

-bオプションで行番号を付与するスタイルを指定する

 
先にも紹介しましたが「-b」オプション+スタイル指定、で行番号を付与するスタイルを指定することができます。
 
 

「a」スタイル:すべての行に対して行番号を付与する

 

 
「-b」オプションに「a」スタイルを指定することですべての行に行番号を付与することができます。
 
ファイルを表示する catコマンドで同様の表示する場合は、下記のように nオプションを使用します。
 

 
 

「t」スタイル:空行以外に対して行番号を付与する

 

 
「-b」オプションに「t」スタイルを指定することで空行以外の行に行番号を付与することができます。
 
これは、先にも紹介しましたが「nl」コマンドでオプションを指定しないデフォルトの状態がこの状態となります。
 
 
また、ファイルを表示する catコマンドで同様の表示する場合は、下記のように bオプションを使用します。
 

 
 

「n」スタイル:すべての行に行番号を付与しない

 

 
「-b」オプションに「n」スタイルを指定することで行番号を付与しません。
 
「cat」コマンドでオプションを指定せずに表示したときと似たような表示にはなりますが、行番号を付与しなくても行番号が表示されるスペースは空けて表示されますので、その点だけが異なります。
 
 

「p」スタイル:パターンに一致する行に対して行番号を付与する

 

 
「-b」オプションに、「p」スタイルに加えてパターン(正規表現)を指定することで、パターンに一致する文字列の行に行番号を付与します。
 
例えば、上記は「^$」を指定しています。
これは空行であることを表す正規表現ですので、空行のみの行に行番号が表示されています。
 
その他の例としては、空行以外の行に行番号を付与する場合は以下のように指定をします。
 

 
 
また、「abc」が含まれる行に行番号を付与する場合は以下のように指定します。
 

 
「-p」に「abc」をつなげて「pabc」としても、「”(引用符)」を付けて「p”abc”」としても OKです。
ですが、「p」と「abc」や「”(引用符)」の間にスペースを入れてはいけません。
 
 

-f、-hオプションで行番号を付与するスタイルを指定する

 
先に「-b」オプションの紹介をしましたが、「-b」の「b」は「body(本文)」のことです。
そして、ここで紹介する「-f」は「footer(フッタ)」、「h」は「header(ヘッダ)」のことになり、それぞれフッタ、ヘッダの行番号を付与する条件を指定することができます。
 
 
設定するスタイルは、「-b」と同じく「a」「t」「n」「p」があり、「-f a」「-h t」のように指定を行います。
 
 

-iオプションで行番号の増分を指定する

 
「-i」オプションに数値を加えて指定することで、下記のように行番号をカウントする際にいくつずつ増やしていくかを指定することができます。
 

 
 

-wオプションで行番号を表示する列の幅を指定する

 
「-w」オプションに数値を加えて指定することで、下記のように行番号を表示する幅を指定することができます。
 

 
 
ちなみに、行番号の後ろはタブが編集されていますので、行番号と文字列の間隔は、タブの設定によって違ってきます。
行番号の後ろのタブを違う文字列に変更する場合は、後述する「-s」オプションを使用します。
 
 

-nオプションで行番号の出力形式を指定する

 
「-n」オプションは、表示する行番号をどのようなフォーマットで表示するか、を指定することができるオプションです。
 
 
指定することができるフォーマットは以下の通りです。
 
 ln:左寄せ
 rn:右寄せ
 rz:ゼロ埋め
 
 

「ln」フォーマットで左寄せ

 
「ln」フォーマットを指定することで左寄せで行番号を表示します。
下記の例では、分かりやすく「-i10」オプションも使用して桁数を増やしています。
 

 
 

「rn」フォーマットで右寄せ

 
「rn」フォーマットを指定することで右寄せで行番号を表示します。
こちらはデフォルトの設定になります。
 

 
 

「rz」フォーマットでゼロ埋め

 
「rz」フォーマットを指定することでゼロ埋めをして表示します。
デフォルトは「6桁」となっています。
 

 
 
下記のように桁数を増やす「-w」オプションを使用し 10桁とした場合は下記のようになります。
 

 
 

-sオプションで行番号の後ろの文字列を指定する

 
「-s」オプションは、付与した行番号の後ろに表示する文字列を指定することができるオプションです。
 

 
デフォルトでは行番号の後ろにはタブが編集されていますが、このタブを違う文字列に変更したい場合に「-s」オプション+文字列を指定します。
 
文字列の指定では「”(引用符)」を使って囲むこともできます。
これを利用して、文字列の中にスペースを含めることもできます。
 

 
 
今回の記事では、ファイルのテキストに行番号を付与する「nl」コマンドについて解説をしましたが、ファイルの内容、および、テキスト情報についての操作に関連するコマンドは下記の記事にまとめていますので、あわせて参考にしてください。
cat、less、head、tail、split、sedなどLinuxでファイル、文字列を操作するコマンド

 - Linuxコマンド

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

makewhatis、mandbコマンドでLinuxのオンラインマニュアル索引情報を更新
makewhatis、mandbコマンドでLinuxのオンラインマニュアル索引情報を更新

Linuxコマンドのオンラインマニュアルを検索するwhatis、aproposなどのコマンドはwhatisデータベースを対象に検索する。このデータベースを更新するmandb、makewhatisコマンドを解説。

Linuxのマニュアルページ表示コマンドmanの解説
Linuxのマニュアルページ表示コマンドmanの解説

Linuxにはコマンド操作のオンラインマニュアルが用意されています。そのマニュアルを表示するコマンドが「man」です。「man」コマンドの使い方について解説します。

Linuxの環境変数でパスの設定をする方法とシェル変数の扱い方を解説
Linuxの環境変数でパスの設定をする方法とシェル変数の扱い方を解説

Linuxでコマンドを設置するパスの設定情報である環境変数「PATH」の確認方法と環境変数「PATH」に新しいパスを追加する方法の解説。Linuxのシェルでの変数の扱い方についての解説も。

Linuxのコマンドの情報を調べるwhich、whereis、whatis、apropos、man
Linuxのコマンドの情報を調べるwhich、whereis、whatis、apropos、man

Linuxのコマンドの実行ファイルやマニュアルの情報を確認するコマンドwhich、whereis、whatis、apropos、manの機能と使い方、似たところと違うところの紹介。

Linuxのbashで変数に値を追加する方法を多数紹介。+=や""を使う方法など
Linuxのbashで変数に値を追加する方法を多数紹介。+=や””を使う方法など

Linuxのbashで変数に値を代入する方法を解説。bashの変数の処理は柔軟で様々な方法を採れる。デリミタなしで値を追加する方法などを解説。

Linuxでファイルの内容を表示するcatコマンドの解説。more、lessで代替も
Linuxでファイルの内容を表示するcatコマンドの解説。more、lessで代替も

catはLinuxのコマンドで、本来の機能はファイルを連結だが、ファイルの内容を表示する機能のために使うことが多く使用頻度が高い。同種の機能のmore、less、tacコマンドについても解説。

cat、less、head、tail、split、sedなどLinuxでファイルを操作するコマンド
cat、less、head、tail、split、sedなどLinuxでファイル、文字列を操作するコマンド

Linuxでファイル、テキストを操作するコマンドのまとめ。cat、less、head、tail、split、tr、sedなど、ファイルを表示、置換、連結、分割などの各コマンドの使い方の紹介と詳細ページの紹介。

Linuxのbashのコマンドの履歴をhistoryで確認し!、↓、↑で実行する
Linuxのbashのコマンドの履歴をhistoryで確認し!、↓、↑で実行する

Linuxで実行したコマンドの履歴を確認するコマンド「history」。「history」の使い方、設定の変更、設定ファイルの設置場所について解説。「!番号」「!文字列」「!?文字列」など。

UNIX・Linuxの sedコマンドで特定の文字列を置換する方法

UNIX・Linuxのコマンドで特定の文字列を置換する sedコマンドの使い方と、perlコマンドを使っての方法を解説しています。

Linuxのタイムスタンプはmtime、ctime、atimeの3種類。touchコマンドで更新する方法
Linuxのタイムスタンプはmtime、ctime、atimeの3種類。touchコマンドで更新する方法

Linuxのファイルのタイムスタンプにはmtime、ctime、atimeの3種類がある。その違いを詳細に解説しつつ、lsで表示するオプション、touchで更新するオプションを解説。