pr

转换文本文件以便打印


语法格式

pr [-acdfFJmrtTv] [-column] [-D fmt] [-e [char[width]]] [-h header]
[-i [char[width]]] [-l pagelen] [-n [sep[digits]]] [-N num] [-o margin]
[-s [char]] [-S str] [-w pagewidth] [-W pagewidth] [files]
pr [--help] [--version]

命令简介

pr命令主要用于文本文件的分页、分栏、标记页码,以便打印。pr命令读取指定的输入文件,采用单列、多列或多个文件并行输出(每个文件一列)的形式,把组织、编排后的页面写到标准输出。其中,files是一个或一组文本文件。如果未指定文件名参数,或指定的文件是“-”,使用标准输入作为输入文件。

通常,每页输出一个5行的页眉:前后两个空行,中间一行左边是当前日期与时间,中心是文件名,右边是页号。页脚输出5个空行。默认的页面长度是66行。实际的输出数据仅占56行。如果输入文件中存在换页符,则以换页符为准。连续的换页符将会导致空页出现。

在多列输出时,每一列的宽度是相同的,中间使用指定的字符或字符串作为分隔符,默认的分隔符是空格。根据页面宽度(默认72个字符位置)和列宽,通常总是截掉数据行的超长部分(除非指定了“-J”选项)。单列输出时,通常不会截短超长的数据行。但在指定“-W”选项的情况下,仍会截掉数据行的超长部分。

注意,部分大写字母选项是后引进的,相同的大写字母选项能够取代小写字母选项,如“-W”与“-w”选项,以及“-S”与“-s”选项等。

命令选项

+firstpage[:lastpage], --pages=firstpage[:lastpage]  从指定的页数firstpage开始输出,直至指定的页数lastpage后结束。如果未指定firstpage参数,表示从第一页开始输出。如果未指定lastpage参数,则隐含着最后一页。在计算跳过的页数时,如果输入文件中含有换页符,以换页符为准,否则按每页66行(包括5行页眉和5行页脚)计算。不管是否跳页,页数的编号不受影响,都从输入文件的第一页开始编号。但行的编号可受“-N”选项控制。

-column, --columns=column  采用竖排方式,把每个页面分成指定的列数(默认为一列),从左到右逐列输出每一行数据(除非指定了“-a”选项),每个页面中每一列的行数保持平衡。列宽随着列数的增加自动缩小,除非同时使用“-W”或“-w”选项增加了页面宽度。如果数据行超出了列宽,截掉超长部分。与“-J”选项一起使用时,保留超长的数据行,取消列的对齐要求。使用“-column”选项时,也蕴含着指定了“-e”和“-i”选项。必要时可以使用“-S”选项设置列与列之间的分隔符,默认的分隔符是空格。注意,“-column”不能与“-m”选项一起使用。

-a, --across  与“-column”选项一起使用时,采用多列横排的方式显示输入文件,如果数据行超出了列宽,截掉超长部分。注意,“-column”选项指定的列宽必须大于1。

-c, --show-control-chars  采用箭头符号与大写字母的组合方式(如^B)显示控制字符,采用八进制转义字符序列(如\033)显示其他不可打印的字符。默认情况保持原样。

-d, --double-space  输出数据时,在每行后面插入一个空行。

-D fmt, --date-format=fmt  使用指定的格式显示页头日期与时间。格式的指定方式与date命令相同,参见“date +format”命令的说明。默认的时间格式是“%Y-%m-%d %H:%M”,如2012-12-22 08:10。

-e [char[width]], --expand-tabs[=char[width]]  把输入文件中的制表符展开成适当数量的空格字符。选用的参数char用于指定输入文件中的制表符(默认值为制表符),width是制表符的宽度,默认值是8。

-f, -F, --form-feed  使用换页符(而非换行符)分页,但并不影响66行的默认页长。

-h header, --header=header  使用指定的文字或字符串取代默认的文件名,作为页眉中间的页头。选项“-h ""”表示中间的页头为空。如果指定的字符串含有空格等特殊字符,前后应加引号。

-i [char[width]], --output-tabs[=char[width]]  输出时使用制表符代替适当数量的空格字符。选用的参数char等同于指定输出时使用的制表符(默认值是制表符),width是制表符的宽度,默认值是8。

-J, --join-lines  保留长行。取消“-W”或“-w”选项截短超长行的规定。与“-column”、“-m”或“-a”与“-column”选项一起使用时,只需考虑数据输出的完整性,不必考虑列的对齐与否。可以与“-S”选项一起使用,采用其设置的列与列间的分隔符。

-l pagelen, --length=pagelen  把页面长度设置为指定的行数(包括页眉5行与页脚5行)。对于文本文件而言,默认的页面长度为66行。如果页面长度小于等于10,则忽略页眉与页脚,如同指定了“-t”选项。

-m, --merge  并行显示指定的多个文件。每列显示一个文件。如果输出的数据行太长,超出了列宽,则截掉超长部分(除非指定了“-J”选项)。列与列间可以使用“-S”选项指定的字符串作为分隔符。默认的页眉只剩下左边的时间和右边的页号,中间的空白可以使用“-h”选项补缺。

-n [sep[digits]], --number-lines[=sep[digits]]  在输出的每行数据前插入一个行号。行号占digits个字符位置(默认为5),行号与实际数据行之间使用sep作为分隔符,默认的分隔符是制表符。通常,行号从输入文件的第一行开始计数。多列输出数据时,行号占用每一列的前digits个字符位置,但在指定“-m”选项的情况下,每行仅输出一个共享的行号。

-N num, --first-line-number=num  使用指定的数值作为第一行输出数据的行号开始编号(在某些情况下并非输入文件的第一行,参见“--pages”选项)。

-o margin, --indent=margin  每一行缩进指定数量margin个空格位置,默认值为0。整个页面宽度是缩进值加上“-W”或“-w”选项指定的页面宽度pagewidth

-r, --no-file-warnings  当命令行中指定的文件参数不存在或无法打开时,禁止输出错误信息。

-s [char], --separator[=char]  使用指定的单个字符作为列与列之间的分隔符。如果指定了“-s”选项,但未指定“-w”选项,则默认的分隔符是制表符。如果同时指定了“s”与“-w”选项,则列与列之间不加任何分隔符。如果未指定“-s”选项,默认的分隔符是空格。当“-s”与“-column”、“-a -column”或“-m”中的任何一个列选项一起使用时,将禁止截短超长的数据行,除非又指定了“-w”选项。

-S str, --sep-string[=str]  使用指定的字符串作为列与列间的分隔符。与“-s”选项不同,“-S”选项不影响“-W”或“-w”选项。指定的页面宽度也不影响行的截短或列的对齐。如果未指定“-S”选项,但指定了“-J”选项,pr使用制表符作为输出数据列与列间的默认分隔符。如果未指定“-S”与“-J”选项,pr使用空格作为输出数据列与列间的分隔符(相当于指定了“-S" "”选项)。

-t, --omit-header  禁止输出页眉(5行)与页脚(5个空行),保持输入文件的原状,连续输出。

-T, --omit-pagination  禁止输出页眉和页脚,同时清除输入文件中的换页符等页面设置。

-v, --show-nonprinting  使用八进制的转义字符序列显示不可打印的字符。

-w pagewidth, --width=pagewidth  把页面宽度设置为指定的字符数量,默认的页面宽度为72个字符。这个选项仅适用于多列页面的输出。“-s [char]”选项将会禁用默认的页面宽度、长行截短和列的对齐等。不管列的选项如何设置,超长行继续保留,可以延伸或延续到下一行。在单列输出时,不能设置页面宽度。

-W pagewidth, --page-width=pagewidth  把页面宽度设置为指定的字符数量,默认的页面宽度为72个字符。不管列的选项如何设置,“-W”选项设定的页面宽度都是有效的。除非指定了“-J”选项,总是截掉数据行的超长部分。与“-column”、“-a -column”或“-m”中的任何一个列选项一起使用时,总是保持列的对齐。分隔符设置选项“-S”或“-s”不影响“-W”的设置。如果没有使用“-W”设置页面宽度,也没有指定任何列的选项,则保留超长行,不采取任何截行动作。这相当于隐含指定了“-W 72 -J”选项。

应用实例

1. 分两列输出两个文本文件,每个文件各占一列,中间以单个空格作为分隔符,页眉中间同时显示两个文件的名字。

$ pr -m –h "best root" best root

2012-10-13 22:18                        best root                         Page 1

I cannot choose the best.               Roots are the branches down in the eart
The best choose me.                     Branches are the roots in the air

2. 把页面宽度设为80个字符位置,分两列输出单个文件,截掉数据行的超长部分。

$ pr -2 -W 80 best

2012-10-13 22:26                          best                           Page 1

I cannot choose the best.               The best choose me.

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z