SHELL中pr命令的实现

 更新时间:2025年09月17日 10:10:57   作者:东北豆子哥  
pr是 “print” 的缩写,主要用于将文本文件分页,并添加页眉、页码等信息,本文就来详细的介绍一下SHELL中pr命令的实现,感兴趣的可以了解一下

在 Bash 中,pr 命令是一个用于格式化文本文件以便打印的工具。它最初设计用于将文本文件转换为适合打印的格式,支持多列输出、页眉、页码、行号等功能。虽然现代系统中使用 pr 的频率较低(更多使用 catlessenscript 等工具),但在某些场景下,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

到此这篇关于SHELL中pr命令的实现的文章就介绍到这了,更多相关SHELL pr命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:

相关文章

  • Shell脚本实现上传zip压缩文件到FTP服务器

    Shell脚本实现上传zip压缩文件到FTP服务器

    这篇文章主要介绍了Shell脚本实现上传zip压缩文件到FTP服务器,本文直接给出实现代码,需要的朋友可以参考下
    2014-12-12
  • linux shell实现折线图代码实例

    linux shell实现折线图代码实例

    这篇文章主要给大家介绍了关于linux shell实现折线图的相关资料,文中通过代码介绍的非常详细,对大家学习或者使用shell具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-12-12
  • 浅谈shell 遍历数组的几种方法

    浅谈shell 遍历数组的几种方法

    这篇文章主要介绍了浅谈shell 遍历数组的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 浅析Linux中重定向问题

    浅析Linux中重定向问题

    这篇文章主要介绍了浅析Linux中重定向问题,需要的朋友可以参考下
    2017-08-08
  • shell for循环与数组应用介绍

    shell for循环与数组应用介绍

    先举一个例子,shell for循环读取一个文件,把每一行赋值给一个数组的变量,然后介绍shell数组的相关知识,有需要的朋友可以参考下
    2013-02-02
  • 如何利用 tee 命令调试shell脚本中的管道

    如何利用 tee 命令调试shell脚本中的管道

    在编写shell脚本时,调试是个比较麻烦的事,特别是涉及到多层管道命令的时候,会产生多个中间结果,tee命令的作用是从标准输入中读取数据写入标准输出或文件中,利用它可以从管道中读取中间结果并写入本地临时文件中,通过中间结果可以一步一步的定位到脚本的错误
    2021-05-05
  • Bash Shell中忽略大小写的设置方法

    Bash Shell中忽略大小写的设置方法

    这篇文章主要介绍了Bash Shell中忽略大小写的设置方法,本文还讲解了其它的一些方便输入命令的设置,如关闭显示隐藏文件、只按一次TAB键、搜索历史命令等技巧,需要的朋友可以参考下
    2015-04-04
  • linux shell实现转换输入日期的格式

    linux shell实现转换输入日期的格式

    对于用户输入日期的合法性检验,是个很重要的问题,这个例子是简单得取得用户输入的日期,并转换为相应的格式,但不完美,原因请看后文
    2016-08-08
  • 又拍云存储同步脚本

    又拍云存储同步脚本

    为了可以自动把网站上的css、js以及图片等静态资源放在又拍云存储上,访问速度明显提高不少,下面简单介绍下实现步骤,需要的朋友可以参考下
    2013-11-11
  • Shell脚本实现分析apache日志中ip所在的地区

    Shell脚本实现分析apache日志中ip所在的地区

    这篇文章主要介绍了Shell脚本实现分析apache日志中ip所在的地区,本文使用了一款nali工具实现,需要的朋友可以参考下
    2014-12-12

最新评论