侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux pr命令教程:如何格式化文本文件为适合打印的格式(附实例详解和注意事项)

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 prpr --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 选项)会使得页数加倍,这可能不是您想要的结果。
0

评论区