Linux常用命令-pr

命令

pr

描述

convert text files for printing
分页打印文件

用法

1
pr [OPTION]... [FILE]...

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Options:
+FIRST_PAGE[:LAST_PAGE] 指定需要打印的页面范围
-NUM 指定每页打印的列数,按列打印,自动均分每列的宽度.可以有效利用页面右侧的空白
-a 横向排列打印行,配合-NUMN使用
-c 显示控制字符
-d 每行之间增加一个空行
-f 使用表单提要来分隔页面而不是换行符
-J 合并整行,关闭行截断
-m 并行打印所有文件,每列一个,截断行
-t 不显示页眉和页脚
-v 显示不可打印字符
-D FORMAT 指定页眉日期格式
-e[CHAR[WIDTH]] 指定分隔符的宽度,默认分隔符为tab占8个字符位
-h HEADER 自定义文件名,-h ""不打印文件名
-i[CHAR[WIDTH]] 指定分隔符替换为几个空格,默认为tab替换为8个空格
-l PAGE_LENGTH 指定每页的行数,默认为56
-n[SEP[DIGITS]] 显示行号,以文件的第一行作为起始行号1,分隔符为tab
-N NUMBER 从打印的第一页的第一行作为起始行号1
-o MARGIN 用空格填充页边距
-s[CHAR] 指定分隔符,默认为tab
-S[STRING] 指定列分隔符
-w PAGE_WIDTH 指定页面宽度为几个字符

注意

示例

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
$ seq 1 100 > a
$ more a
1
2
3
...
100
# 默认是按行打印,自动分页
$ pr a

2021-02-13 18:50 a Page 1

1
2
3
...
56

2021-02-13 18:50 a Page 2

57
58
...
100
# +1:1只打印第一页,指定相同的起始和结束页码
$ pr +1:1 a
$ echo {A..z}|sed 's/ /\n/g' > b
$ paste a b > c
$ more c
1 A
2 B
3 C
...
100
# 指定每页打印两列,如果每行内容比较短,则可以多列打印,有效利用右侧的空白从而减少页数
$ pr -2 c

2021-02-13 19:17 c Page 1

1 A 51 s
2 B 52 t
3 C 53 u
4 D 54 v
5 E 55 w
6 F 56 x
7 G 57 y
8 H 58 z
9 I 59
10 J 60
11 K 61
...
# 默认按列打印为竖向排列
$ pr -2 c | head
1 A 51 s
2 B 52 t
3 C 53 u
4 D 54 v
5 E 55 w
# -a横向排列
$ pr -2 -a c | head
1 A 2 B
3 C 4 D
5 E 6 F
7 G 8 H
9 I 10 J
# 指定tab占4个字符位
$ pr -e4 c |head
# 指定空格占4个字符位
$ pr -e\ 4 c |head