Linux pr命令介绍
pr
(即 Page Rank 或 Print)命令用于将文本文件转换成适合打印的格式。它可以对文本进行分页、添加页眉、页脚、日期和分栏等。pr
通过标准输入读取文本数据,如果没有指定文件,它将从标准输入中读取数据。
Linux pr命令适用的Linux版本
pr
命令是 GNU coreutils 软件包的一部分,几乎在所有的 Linux 发行版中都是可用的。不过,如果在某些最小化安装的 Linux 系统中没有找到它,可以根据不同的包管理器进行安装:
对于基于 Debian 的系统(如 Ubuntu):
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install coreutils
对于 Red Hat 系统(如 CentOS):
- CentOS 7:
[linux@bashcommandnotfound.cn ~]$ sudo yum install coreutils ```
- CentOS 8:
[linux@bashcommandnotfound.cn ~]$ sudo dnf install coreutils ```
Linux pr命令的基本语法
语法格式:
pr [OPTIONS]... [FILES]...
Linux pr命令的常用选项或参数说明
选项 | 描述 |
---|---|
-d | 双间距输出 |
-h | 指定页眉文字 |
-l | 设置页长,默认为66行 |
-n | 添加行号 |
-o | 设置页边距 |
-t | 不打印页眉页脚 |
-w | 设置页面宽度,默认72字符 |
-A | 输出为ASCII字符而非转义字符 |
-F | 使用换页符而非换行符来分页 |
-3 | 三列输出 |
-1 | 单列输出 |
请注意,这里只列举了部分选项,具体请参考 man pr
或 pr --help
。
Linux pr命令实例详解
实例1:查看文件的分页格式
[linux@bashcommandnotfound.cn ~]$ pr filename.txt
实例2:以双栏格式查看文件
[linux@bashcommandnotfound.cn ~]$ pr -2 filename.txt
实例3:添加自定义页眉
[linux@bashcommandnotfound.cn ~]$ pr -h "My Custom Header" filename.txt
实例4:不显示页眉和页脚
[linux@bashcommandnotfound.cn ~]$ pr -t filename.txt
实例5:设置页面宽度
[linux@bashcommandnotfound.cn ~]$ pr -w 100 filename.txt
实例6:输出带行号的文件
[linux@bashcommandnotfound.cn ~]$ pr -n filename.txt
实例7:合并多个文件并分栏打印
[linux@bashcommandnotfound.cn ~]$ pr -m -t file1.txt file2.txt
实例8:以双间距格式化文件
[linux@bashcommandnotfound.cn ~]$ pr -d filename.txt
实例9:更改页长为50行
[linux@bashcommandnotfound.cn ~]$ pr -l 50 filename.txt
实例10:设置输出为ASCII字符
[linux@bashcommandnotfound.cn ~]$ pr -A filename.txt
实例11:将文件内容分页并添加页码
[linux@bashcommandnotfound.cn ~]$ pr -n filename.txt | less
这个命令将文件分页,并在每页的开始处添加行号。使用 less
命令可以方便地浏览分页后的内容。
实例12:将标准输入格式化为分页文本
[linux@bashcommandnotfound.cn ~]$ cat filename.txt | pr | lpr
这个命令先用 cat
命令读取文件内容,然后通过管道传递给 pr
进行分页格式化,最后通过 lpr
命令发送到打印机。
实例13:设置页边距
[linux@bashcommandnotfound.cn ~]$ pr -o 10 filename.txt
这个命令设置了每页的左边距为10个字符。
实例14:三列输出
[linux@bashcommandnotfound.cn ~]$ pr -3 filename.txt
使用 -3
参数,可以将文件的内容分为三栏显示。
实例15:横向打印
[linux@bashcommandnotfound.cn ~]$ pr -l 50 -w 200 filename.txt | lpr
这个命令将页面长度设置为50行,页面宽度设置为200字符,并发送到打印机进行横向打印。
实例16:按月份分隔文件并打印
假设你有一个包含一年数据的文件,每个月的数据以一个月的名称作为标题。你可以使用 pr
来分页打印,每个月份一个新的页面。
[linux@bashcommandnotfound.cn ~]$ grep -l 'January\|February\|March\|April\|May\|June\|July\|August\|September\|October\|November\|December' filename.txt | pr | lpr
实例17:打印两个文件的对比
如果你想同时查看两个文件的内容以便于对比,可以使用 pr
将它们并排打印。
[linux@bashcommandnotfound.cn ~]$ pr -m -t file1.txt file2.txt
实例18:添加自定义页脚
pr
命令没有直接支持添加自定义页脚的选项,但你可以使用脚本来实现。
[linux@bashcommandnotfound.cn ~]$ pr filename.txt | awk '{print} END {print "\nCustom Footer"}'
实例19:打印指定页数
如果你只想打印文件的前三页,可以使用 head
命令与 pr
结合实现。
[linux@bashcommandnotfound.cn ~]$ pr filename.txt | head -n $(($(pr -l | head -n1 | awk '{print $1}') * 3))
实例20:以反向顺序打印文件
如果要以反向顺序打印文件,可以先使用 tac
命令。
[linux@bashcommandnotfound.cn ~]$ tac filename.txt | pr
Linux pr命令的注意事项
- 当使用
pr
命令时,确保文件的内容适合于您想要的分页格式。过长的行可能会被截断或包裹到下一行,这取决于您的页面宽度设置。 - 如果
pr
命令不可用,可能需要安装coreutils
包。如果遇到bash: pr: command not found
,请参照上文的安装说明进行安装。 pr
默认的页长是66行,页宽是72字符,如果你的内容有不同的格式需求,请确保使用合适的选项来调整这些值。- 当输出到文件时,记得双间距(
-d
选项)会使得页数加倍,这可能不是您想要的结果。
评论区