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