SHELL命令pr
文章目录
- 一、pr 命令简介
- 二、常用选项
- 三、实用示例
- 1. 基本使用:分页显示文件
- 2. 不显示页眉页码(简洁输出)
- 3. 添加行号
- 4. 设置页面大小
- 5. 多列输出
- 6. 合并多个文件并列显示
- 7. 自定义页眉
- 8. 从标准输入读取
- 9. 双倍行距
- 四、实际应用场景
- 五、注意事项
- 六、总结
在 Bash 中,pr
命令是一个用于格式化文本文件以便打印的工具。它最初设计用于将文本文件转换为适合打印的格式,支持多列输出、页眉、页码、行号等功能。虽然现代系统中使用 pr
的频率较低(更多使用 cat
、less
或 enscript
等工具),但在某些场景下,pr
依然非常实用。
一、pr 命令简介
pr
是 “print” 的缩写,主要用于将文本文件分页,并添加页眉、页码等信息,使其更适于打印或阅读。
基本语法:
pr [选项] [文件...]
如果没有指定文件,pr
会从标准输入读取。
二、常用选项
选项 | 说明 |
---|---|
-l N | 设置每页的行数为 N(默认是 66 行) |
-w N 或 -W N | 设置页面宽度为 N 个字符(默认是 72 或 80) |
-t | 不输出页眉和页码(精简模式) |
-n | 添加行号(每行前加行号) |
-N | 指定行号的宽度(如 -n4 表示 4 位宽行号) |
-m | 多文件合并打印(并排显示多个文件) |
-2 , -3 , … | 指定输出为 2 列、3 列等 |
-s[分隔符] | 列之间使用指定分隔符(默认是制表符 \t ) |
+N | 从第 N 页开始打印 |
-d | 使用双倍行距输出 |
-h "标题" | 自定义页眉标题(替换默认的文件名和时间) |
三、实用示例
1. 基本使用:分页显示文件
pr file.txt
输出会分为每页 66 行,带有页眉(文件名、日期、页码)。
2. 不显示页眉页码(简洁输出)
pr -t file.txt
适合用于后续管道处理,避免多余信息。
3. 添加行号
pr -n file.txt
在每行前面加上行号(默认 5 位宽)。
4. 设置页面大小
pr -l 50 -w 100 file.txt
每页 50 行,每行最多 100 字符。
5. 多列输出
pr -2 file.txt
将文件内容分为两列显示。
pr -3 -s file.txt
三列输出,列之间用空格分隔(-s
默认用空格或制表符)。
6. 合并多个文件并列显示
pr -m file1.txt file2.txt file3.txt
将多个文件并排打印(每文件一列),适合对比内容。
7. 自定义页眉
pr -h "My Report" data.txt
页眉显示为 “My Report” 而不是文件名。
8. 从标准输入读取
cat file.txt | pr -t | less
将文件内容通过管道传给 pr
,去掉页眉后用 less
查看。
9. 双倍行距
pr -d file.txt
每行之间增加一个空行,便于阅读或批注。
四、实际应用场景
- 打印代码或日志:使用
pr -n
添加行号,方便引用。 - 对比文件:用
pr -m file1 file2
并列显示两个文件。 - 生成报告:结合
-h
和多列输出,美化文本输出。 - 预处理文本:在交给
lpr
(打印命令)之前用pr
格式化。
例如,打印带行号的脚本:
pr -n -h "backup.sh" backup.sh | lpr
五、注意事项
pr
默认每页 66 行(模仿传统打印机的一页),可通过-l
修改。- 多列模式下,如果文本过长会被截断,注意使用
-w
调整宽度。 pr
不会修改原始文件,只是格式化输出。
六、总结
pr
是一个轻量级但功能丰富的文本格式化工具,适合在终端中对文本进行排版,尤其适用于打印准备。虽然现代 GUI 打印更常见,但在服务器环境或脚本中,pr
依然有其价值。
💡 提示:结合
pr
与lpr
、less
、grep
等命令,可以构建强大的文本处理流水线。
如需查看完整帮助,运行:
pr --help
man pr