nl - 行番号を追加する

スポンサーリンク

nlコマンドは、ファイルの内容や標準入力の内容に行番号を追加することができます。

スポンサーリンク

nlコマンドとは

nlコマンドは、入力ファイルまたは標準入力が与えられると標準出力にその入力ファイルや標準入力に行に行番号を追加した行を出力します。

 

また、nlコマンドは入力ファイル全体を論理的なページセクションに分けることができます。入力ファイル全体を一つのドキュメントとして扱い、入力ファイルの中にある決められた文字列を区切りとして、そのドキュメントをヘッダー、ボディ、フッターのセクションごとに分けることができます。
決められた文字列は、デフォルトでは、ヘッダー部分は「\:\:\:」という行から始まり、ボディ部分は「\:\:」という行から始まり、フッター部分は「\:」という行から始まることでセクションが分けることができます。

example.txt

 

セクションごとに分けると行番号をつけるかどうかのスタイルを変更することができます。
また、セクションが分かれていると行番号の割り付けがリセットされます。

nlコマンドの利用例

行番号を追加
(オプションなし)

nlコマンドは、入力ファイルまたは標準入力からの内容に行番号を追加することができます。
デフォルトでは、空行以外の行に行番号を追加します。全ての行に行番号をつけるかどうか等は-bオプションで変更することができます。
また、数字のフォーマットは6文字の右詰めがデフォルトになっています。これは-nオプションで変更できます。

コマンド例

test.txt

実行結果

 

 

 

行番号の表示形式の変更
(-nオプション)

-nオプションは、フォーマットを指定して、行番号の表示形式を変更することができます。
フォーマットは以下の表にまとめます。

フォーマット

フォーマット 意味
ln 左詰め
rn 右詰め(デフォルト)
rz 右詰めで0で埋める

 

左詰め(ln)

コマンド例

test.txt

実行結果

 

 

 

右詰め(デフォルト)(rn)

コマンド例

test.txt

実行結果

 

 

 

右詰めで0で埋め(rz)

コマンド例

test.txt

実行結果

 

 

 

行番号とファイルの内容の間の区切り文字を変更
(-sオプション)

-sオプションは、区切り文字を変更することができます。デフォルトの区切り文字はTABになります。

コマンド例

test.txt

実行結果

 

 

 

行番号の長さを変更
(-wオプション)

-wオプションは、行番号の長さを指定することができます。
デフォルトは6文字になります。

コマンド例

test.txt

実行結果

 

 

 

ボディ部分の行番号追加のスタイル変更
(-bオプション)

nlコマンドは、セクション分けを行うことができます。特にセクション分けを行っていない場合はボディ部分として認識されます。

-bオプションは、ボディ部分の行番号追加のスタイルを変更することができます。
スタイルは以下の表にまとめます。

スタイル

スタイル 意味
a 全ての行に行番号を追加
t 空行以外の行に行番号を追加(ボディのデフォルト)
n 行番号を追加しない(ヘッダーとフッターのデフォルト)
p正規表現 正規表現にマッチした行だけ行番号を追加

 

全ての行に行番号を追加

コマンド例

test.txt

実行結果

 

 

 

空行以外の行に行番号を追加(ボディのデフォルト)

コマンド例

test.txt

実行結果

 

 

 

行番号を追加しない(ヘッダーとフッターのデフォルト)

コマンド例

test.txt

実行結果

 

 

 

正規表現にマッチした行だけ行番号を追加

コマンド例

test.txt

実行結果

 

ヘッダー部分の行番号追加のスタイル変更
(-hオプション)

-hオプションは、ヘッダー部分の行番号追加のスタイルを変更できます。スタイルは-bオプションと同じになります。

コマンド例

header.txt

body.txt

footer.txt

実行結果

 

 

 

フッター部分の行番号追加のスタイル変更
(-fオプション)

-fオプションは、フッター部分の行番号追加のスタイルを変更できます。スタイルは-bオプションと同じになります。

コマンド例

実行結果

 

 

 

行番号の増分値の変更
(-iオプション)

-iオプションは行番号の増分値の数値を変更できます。デフォルトは1になります。

コマンド例

test.txt

実行結果

 

 

 

空行での行番号の増分値の変更
(-lオプション)

-lオプションは空行での行番号の扱いを変更することができます。

コマンド例

body2.txt

実行結果

 

 

 

セクションごとの行番号リセットを行わない
(-pオプション)

-pオプションをつけると、セクションごとでの行番号リセットを行わなくなります。

コマンド例

header.txt

body.txt

footer.txt

実行結果

 

 

 

行番号の初期値の設定
(-vオプション)

-vオプションは、行番号の初期値を設定できます。

コマンド例

header.txt

body.txt

実行結果

 

 

 

セクション分けの区切り文字を変更
(-dオプション)

-dオプションはセクション分けの区切り文字を変更することができます。
2文字を区切り文字として、その区切り文字を3回繰り返したものをヘッダー開始の区切り文字に、2回繰り返したものをボディ開始の区切り文字に、1回だけのものがフッター開始の区切り文字になります。

コマンド例

header_d1.txt

body_d1.txt

footer_d1.txt

実行結果

 

 

 

参考

外部リンクGnu Coreutils

外部リンクGnu Coreutils日本語版