#Bash 的 pr 命令
pr [OPTION]... [FILE]...
功能
对文件进行分页或分栏处理以进行打印。
类型
可执行文件(/usr/bin/pr),属于 coreutils。
参数
OPTION选项:-
+FIRST_PAGE[:LAST_PAGE], --pages=FIRST_PAGE[:LAST_PAGE]- 从指定的第一页开始打印(可选指定最后一页)。
-
-COLUMN, --columns=COLUMN- 以 COLUMN 列输出,并按列 自上而下 排列(除非使用
-a)。 - 平衡每页各列的行数。
- 以 COLUMN 列输出,并按列 自上而下 排列(除非使用
-
-a, --across- 按 横向 排列列,而不是纵向。需配合
-COLUMN使用。
- 按 横向 排列列,而不是纵向。需配合
-
-c, --show-control-chars- 使用帽子符号(^G)和八进制反斜线表示控制字符。
-
-d, --double-space- 输出结果双倍行距。
-
-D, --date-format=FORMAT- 使用 FORMAT 指定页眉中的日期格式。
-
-e[CHAR[WIDTH]], --expand-tabs[=CHAR[WIDTH]]- 将输入中的 CHAR(默认 TAB)扩展为给定宽度(默认 8)。
-
-F, -f, --form-feed-
用换页符代替换行符分隔页面:
- 使用
-F→ 页眉占 3 行 - 未使用
-F→ 页眉和页脚共占 5 行
- 使用
-
-
-h, --header=HEADER- 在页眉使用居中的 HEADER 替代文件名。
- 使用
-h ""输出空白行(不要写成-h"")。
-
-i[CHAR[WIDTH]], --output-tabs[=CHAR[WIDTH]]- 将空格转换为 CHAR(默认 TAB),宽度为 WIDTH(默认 8)。
-
-J, --join-lines- 合并完整行;关闭
-W的行截断;不进行列对齐。 - 可使用
--sep-string=STRING设置列分隔符。
- 合并完整行;关闭
-
-l, --length=PAGE_LENGTH- 设置页面长度为 PAGE_LENGTH(默认 66 行)。
- 默认正文为 56 行;使用
-F时正文为 63 行。 - 如果长度 ≤ 10,则隐含启用
-t(不显示页眉页脚)。
-
-m, --merge- 并行打印多个文件,每个文件一列。
- 截断行;若配合
-J则合并完整行。
-
-n[SEP[DIGITS]], --number-lines[=SEP[DIGITS]]- 为行编号。
- DIGITS(默认 5)为编号位数;SEP(默认 TAB)为分隔符。
- 默认从文件第一行开始编号。
-
-N, --first-line-number=NUMBER- 设置输出第一页第一行从 NUMBER 开始编号(参考
+FIRST_PAGE)。
- 设置输出第一页第一行从 NUMBER 开始编号(参考
-
-o, --indent=MARGIN- 每行前缩进 MARGIN 个空格。
- 不影响
-w与-W。 - MARGIN 会加到页面宽度中。
-
-r, --no-file-warnings- 当文件无法打开时不显示警告。
-
-s[CHAR], --separator[=CHAR]- 用单个 CHAR 分隔列。
- CHAR 默认是 TAB(无
-w时)或“无字符”(使用-w时)。 - 使用
-s会关闭所有列模式(-COLUMN、-a、-m)的行截断,除非设置了-w。
-
-S[STRING], --sep-string[=STRING]- 使用 STRING 分隔列。
- 默认分隔符:
- 使用
-J→ TAB - 未使用
-J→ 空格(相当于-S" ")
- 使用
- 不影响列模式。
-
-t, --omit-header- 不输出页眉和页脚。
- 页面长度 ≤ 10 时自动启用。
-
-T, --omit-pagination- 不输出页眉和页脚,并忽略输入中的分页符。
-
-v, --show-nonprinting- 使用八进制反斜线表示不可打印字符。
-
-w, --width=PAGE_WIDTH- 设置页面宽度为 PAGE_WIDTH(默认 72)。
- 仅用于多列文本输出。
- 使用
-s会关闭默认页宽 72 的限制。
-
-W, --page-width=PAGE_WIDTH- 始终设置页面宽度为 PAGE_WIDTH(默认 72)。
- 截断行(除非使用
-J)。 - 与
-S和-s不冲突。
-
--help- 显示帮助 -
--version- 显示版本
-
FILE- 文件列表,如果没有这个参数或指定为-,则读取标准输入
#示例
$ man pr > 1.txt # 创建文件
$ pr -n -l 20 1.txt +3:5 # 打印 1.txt 显示行号 每页 20 行 显示第三页到第五页
2025-11-23 14:09 1.txt Page 3
21 output COLUMN columns and print columns down, unless -a is used.
22 Balance number of lines in the columns on each page
23
24 -a, --across
25 print columns across rather than down, used together with -COL‐
26 UMN
27
28 -c, --show-control-chars
29 use hat notation (^G) and octal backslash notation
30
2025-11-23 14:09 1.txt Page 4
31 -d, --double-space
32 double space the output
33
34 -D, --date-format=FORMAT
35 use FORMAT for the header date
36
37 -e[CHAR[WIDTH]], --expand-tabs[=CHAR[WIDTH]]
38 expand input CHARs (TABs) to tab WIDTH (8)
39
40 -F, -f, --form-feed
2025-11-23 14:09 1.txt Page 5
41 use form feeds instead of newlines to separate pages (by a
42 3-line page header with -F or a 5-line header and trailer with‐
43 out -F)
44
45 -h, --header=HEADER
46 use a centered HEADER instead of filename in page header, -h ""
47 prints a blank line, don't use -h""
48
49 -i[CHAR[WIDTH]], --output-tabs[=CHAR[WIDTH]]
50 replace spaces with CHARs (TABs) to tab WIDTH (8)
#推荐阅读
#手册
PR(1) User Commands PR(1)
NAME
pr - convert text files for printing
SYNOPSIS
pr [OPTION]... [FILE]...
DESCRIPTION
Paginate or columnate FILE(s) for printing.
With no FILE, or when FILE is -, read standard input.
Mandatory arguments to long options are mandatory for short options
too.
+FIRST_PAGE[:LAST_PAGE], --pages=FIRST_PAGE[:LAST_PAGE]
begin [stop] printing with page FIRST_[LAST_]PAGE
-COLUMN, --columns=COLUMN
output COLUMN columns and print columns down, unless -a is used.
Balance number of lines in the columns on each page
-a, --across
print columns across rather than down, used together with -COL‐
UMN
-c, --show-control-chars
use hat notation (^G) and octal backslash notation
-d, --double-space
double space the output
-D, --date-format=FORMAT
use FORMAT for the header date
-e[CHAR[WIDTH]], --expand-tabs[=CHAR[WIDTH]]
expand input CHARs (TABs) to tab WIDTH (8)
-F, -f, --form-feed
use form feeds instead of newlines to separate pages (by a
3-line page header with -F or a 5-line header and trailer with‐
out -F)
-h, --header=HEADER
use a centered HEADER instead of filename in page header, -h ""
prints a blank line, don't use -h""
-i[CHAR[WIDTH]], --output-tabs[=CHAR[WIDTH]]
replace spaces with CHARs (TABs) to tab WIDTH (8)
-J, --join-lines
merge full lines, turns off -W line truncation, no column align‐
ment, --sep-string[=STRING] sets separators
-l, --length=PAGE_LENGTH
set the page length to PAGE_LENGTH (66) lines (default number of
lines of text 56, and with -F 63). implies -t if PAGE_LENGTH <=
10
-m, --merge
print all files in parallel, one in each column, truncate lines,
but join lines of full length with -J
-n[SEP[DIGITS]], --number-lines[=SEP[DIGITS]]
number lines, use DIGITS (5) digits, then SEP (TAB), default
counting starts with 1st line of input file
-N, --first-line-number=NUMBER
start counting with NUMBER at 1st line of first page printed
(see +FIRST_PAGE)
-o, --indent=MARGIN
offset each line with MARGIN (zero) spaces, do not affect -w or
-W, MARGIN will be added to PAGE_WIDTH
-r, --no-file-warnings
omit warning when a file cannot be opened
-s[CHAR], --separator[=CHAR]
separate columns by a single character, default for CHAR is the
<TAB> character without -w and 'no char' with -w. -s[CHAR]
turns off line truncation of all 3 column options (-COLUMN|-a
-COLUMN|-m) except -w is set
-S[STRING], --sep-string[=STRING]
separate columns by STRING, without -S: Default separator <TAB>
with -J and <space> otherwise (same as -S" "), no effect on col‐
umn options
-t, --omit-header
omit page headers and trailers; implied if PAGE_LENGTH <= 10
-T, --omit-pagination
omit page headers and trailers, eliminate any pagination by form
feeds set in input files
-v, --show-nonprinting
use octal backslash notation
-w, --width=PAGE_WIDTH
set page width to PAGE_WIDTH (72) characters for multiple
text-column output only, -s[char] turns off (72)
-W, --page-width=PAGE_WIDTH
set page width to PAGE_WIDTH (72) characters always, truncate
lines, except -J option is set, no interference with -S or -s
--help display this help and exit
--version
output version information and exit
AUTHOR
Written by Pete TerMaat and Roland Huebner.
REPORTING BUGS
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>
COPYRIGHT
Copyright © 2023 Free Software Foundation, Inc. License GPLv3+: GNU
GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
SEE ALSO
Full documentation <https://www.gnu.org/software/coreutils/pr>
or available locally via: info '(coreutils) pr invocation'
GNU coreutils 9.4 April 2024 PR(1)