LoginSignup
0
0

More than 3 years have passed since last update.

行番号の初期値を変更するnlコマンドのvオプション

Posted at

nlコマンドはvオプションを指定することで、行番号の初期値を変更することができます。

vオプションの使い方

論理ページごとに初期値を変更します。デフォルトは1です。あまり特筆することはありませんが、マニュアルを参照してみましょう。

info nl (GNU coreutils)

‘-v NUMBER’
‘--starting-line-number=NUMBER’
     Set the initial line number on each logical page to NUMBER (default
     1).

busybox nl --help

    -v N        Start from N

man nl (BSD)

     -v startnum  Specify the initial value used to number logical page lines; see
                  also the description of the -p option.  The default startnum
                  value is 1.

BSD系のマニュアルではpオプション(未解説)について補足があります。

POSIX

-v startnum
Specify the initial value used to number logical page lines. The default shall be 1.

vオプションを試す

それでは実際に試してみましょう。

$ yes | head | nl -v 5
     5  y
     6  y
     7  y
     8  y
     9  y
    10  y
    11  y
    12  y
    13  y
    14  y

負の値

-vには負の値も設定することができます。

$ yes | head | nl -v -5
    -5  y
    -4  y
    -3  y
    -2  y
    -1  y
     0  y
     1  y
     2  y
     3  y
     4  y

改ページ

論理ページが複数ある場合は、ページごとにリセットされます。

coreutils
$ echo -e 'a\nb\n\:\:\nc\nd' 
a
b
\:\:
c
d
$ echo -e 'a\nb\n\:\:\nc\nd' | nl -v 5
     5  a
     6  b

     5  c
     6  d
bsd
$ echo -e 'a\nb\n\:\:\nc\nd' | nl -v 5
     5  a
     6  b
     5  c
     6  d

駅ナンバリング表示の駅番号を出力する(相互直通)

前の記事では、宇都宮線・高崎線の駅ナンバリング表示を出力しました。今回は-vを使って横浜線の駅ナンバリング表示を出力してみます。
横浜線は多くの列車が東神奈川駅を始発終着とし横浜駅まで直通しないことで有名ですが、一部列車は東神奈川駅から先、京浜東北線・根岸線大船駅まで直通します。そのため京浜東北線・根岸線と駅番号を合わせる都合から、横浜線のプリフィックス「JH」の駅番号は東神奈川駅13からスタートします。

$ cat yokohamaline
東神奈川
大口
菊名
新横浜
小机
鴨居
中山
十日市場
長津田
成瀬
町田
古淵
淵野辺
矢部
相模原
橋本
相原
八王子みなみ野
片倉
八王子
$ nl -n rz -w 2 -v 13 yokohamaline | sed 's/^/JH/'
JH13    東神奈川
JH14    大口
JH15    菊名
JH16    新横浜
JH17    小机
JH18    鴨居
JH19    中山
JH20    十日市場
JH21    長津田
JH22    成瀬
JH23    町田
JH24    古淵
JH25    淵野辺
JH26    矢部
JH27    相模原
JH28    橋本
JH29    相原
JH30    八王子みなみ野
JH31    片倉
JH32    八王子

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0