nlコマンドを利用すると、出力結果の各行の先頭に連番を付けることができます。
$ nl -w 1 -n ln file.txt
1 Apple
2 Orange
3 Banana
要は行番号ですね。デフォルトでは連番の後ろにはタブが挿入されます。
利用例
連番の書式を変更する
オプションを指定しないとデフォルトでは「文字幅は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
このブログを応援する
お寄せいただいたお気持ちは全額サーバ代や次の記事を執筆するための原資として活用させていただいております。この記事が参考になった場合などぜひご検討ください。