[Linux] 連番付きで出力する – nl

  • このエントリーをはてなブックマークに追加
  • LINEで送る

nlコマンドを利用すると、出力結果の各行の先頭に連番を付けることができます。

$ nl -w 1 -n ln file.txt
1   Apple
2   Orange
3   Banana

要は行番号ですね。デフォルトでは連番の後ろにはタブが挿入されます。

- Sponsored Link -

利用例

連番の書式を変更する

オプションを指定しないとデフォルトでは「文字幅は6桁」「0字詰めをしない」「右揃え」という指定になります。

$ nl file.txt
     1  Apple
     2  Orange
     3  Banana

文字幅

-wオプションで文字の幅を指定します。足りない桁は半角スペースが入ります。

$ nl -w 3 file.txt
  1 Apple
  2 Orange
  3 Banana

ゼロ字詰め・左右揃え

-nオプションで足りない桁をゼロで埋めるか、左右のどちらに数字を寄せるか一度に指定できます。

$ nl -w 5 -n rz file.txt
00001   Apple
00002   Orange
00003   Banana

ここで指定することのできる値は以下の3種類です。

ゼロ字詰め左右揃え
lnなし
rnなし
rzあり

初見だと「なんやこれ…」状態ですが、おそらく以下のような意味だと思われます。

  • 1桁目の「l」がLeft、「r」がRight
  • 2桁目の「n」がNon、「z」がZero

初期値を変更する

-vオプションで最初の数値を指定できます。

$ nl -w 4 -n ln -v 1000 file.txt
1000    Apple
1001    Orange
1002    Banana

区切り文字を変更する

数字の後ろにデフォルトではタブが挿入されますが、-sオプションで変更することができます。CSV形式のようにカンマ区切りにしたい場合は以下の通り。

$ nl -w 1 -n ln -s ',' file.txt
1,Apple
2,Orange
3,Banana

連番を付ける条件

-bオプションでどの行に連番を付けるか指定できます。デフォルトでは空行には連番が付きません。

$ nl -w 1 -n ln -b t file.txt 
1   Apple

2   Orange

3   Banana

-bオプションに「a」を指定するとすべての行に連番を付与します。

$ nl -w 1 -n ln -b a file.txt
1   Apple
2   
3   Orange
4   
5   Banana

参考ページ

  • man nl

このブログを応援する

お寄せいただいたお気持ちは全額サーバ代や次の記事を執筆するための原資として活用させていただいております。この記事が参考になった場合などぜひご検討ください。

PayPal(ペイパル)
PayPalで300円支払う
※金額は任意で変更できます。
※100円でも泣いて喜びますw
※住所の入力欄が現れた場合は「no needed」を選択ください
これまでのご協力者さま
- Sponsored Link -