Linux常用命令-nl

命令

nl

描述

number lines of files
显示文件行号

用法

1
nl [OPTION]... [FILE]...

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Options:
-b STYLE 选择指定行添加行号,STYLE可选参数为a,t,n,p
-f STYLE 指定页脚行号
-h STYLE 指定页眉行号
-i NUM 指定行号增量,默认为1
-l NUM 指定几个连续空行被看作一行,默认为1,即不合并空行行号
-n FORMAT 指定行号的对齐方式,FORMAT可选参数为ln,rn,rz
-p 不要在逻辑页重置行号
-s STRING 在行号后添加指定字符串,默认为TAB
-v NUM 指定起始行号,默认为1
-w NUM 指定行号的宽度,即行号本身占用几个字符位,默认为6

STYLE:
a 所有行
t 非空行
n 不添加行号
pBRE 匹配基本正则表达式的行
FORMAT:
ln 左对齐,不填充0
rn 右对齐,不填充0
rz 右对齐,填充0

默认选项为-v1 -i1 -l1 -sTAB -w6 -nrn -hn -bt -fn

注意

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
$ more a
aaa
bbb
ccc

d
e
f


123
a322
asdf

aaa
$ $ nl a > b
# ^I表示TAB
$ cat -t b
1^Iaaa
2^Ibbb
3^Iccc

4^Id
5^Ie
6^If


7^I123
8^I a322
9^Iasdf

10^Iaaa
# 为所有行添加行号
$ nl -ba a
1 aaa
2 bbb
3 ccc
4
5 d
6 e
7 f
# 只为非空行添加行号
$ nl -bt a
1 aaa
2 bbb
3 ccc

4 d
5 e
6 f
# 只为匹配aaa的行添加行号
$ nl -bpaaa a
1 aaa
bbb
ccc

d
e
f
# 指定行号增量为10
$ nl -i10 a
1 aaa
11 bbb
21 ccc
# 行号左对齐,不填充0
$ nl -nln a
1 aaa
2 bbb
3 ccc
...
10 aaa
# 行号右对齐,不填充0
$ nl -nrn a
1 aaa
2 bbb
3 ccc
...
10 aaa
# 行号左对齐,填充0补位
$ nl -nrz a
000001 aaa
000002 bbb
000003 ccc
...
000010 aaa
# 在行号后添加指定字符
$ nl -s. a
1.aaa
2.bbb
3.ccc
$ nl -s" - " a
1 - aaa
2 - bbb
3 - ccc
# 指定起始行号从10开始
$ nl -v10 a
10 aaa
11 bbb
12 ccc
# 指定行号本身占用3个字符位
$ nl -w3 a
1 aaa
2 bbb
3 ccc
...
10 def
# 为非空行添加行号,行号右对齐,在行号后面添加一个空格,行号从1开始,增量为1,行号占三个字符
$ nl -bt -nrn -s" " -v1 -i1 -w3 a
1 aaa
2 bbb
3 ccc

4 d
5 e
6 f
...
10 aaa