0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

nlコマンドAdvent Calendar 2020

Day 12

行番号の初期値を変更する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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?