分类: LINUX
2013-04-14 22:15:43
pr命令能够快速的将一连串文本编排成合适打印的格式。这个工具的一个基本用途就是将较大的文件分割成多个页面,并为每个页面添加标题。pr是一个标准的输出工具,可以直接输出到打印机,如果你希望将结果保存在文件中,则需要重定向它的输出。
用法:pr [选项]… [文件]…
长选项必须用的参数在使用短选项时也是必须的。
+FIRST_PAGE[:LAST_PAGE], –pages=FIRST_PAGE[:LAST_PAGE]
begin [stop] printing with page FIRST_[LAST_]PAGE
-COLUMN, –columns=COLUMN
设置列的个数,由 Column 变量指定。缺省值是 1。这个选项不能与 -m 标志一起使用。-e 和 -i 标志被假定是为多列输出。文本列不应超出页的长度( 参阅 -l 标志)。当 -Column 标志和 -t 标志一起使用,使用最小的行数写输出。
-a, –across 修改 -Column 标志的效果,使多个列从左到右水平填充。例如,如果有两列,第一个输入行从第一列开始,第二行从第二列开始,第三行成为第一列的第二行,依此类推。如果 -a 标志没有指定,列就垂直创建。
-c, –show-control-chars
显示控制字符
-d, –double-space
文件行距空白加倍
-D, –date-format=FORMAT
use FORMAT for the header date
-e[CHAR[WIDTH]], –expand-tabs[=CHAR[WIDTH]]
扩展制表符到字符位置,如下:Gap+1, 2*Gap+1, 3*Gap+1,等等。Gap 缺省值是 8。输入的制表符扩展到适当的数量的空格,以便与下一个制表符的设置对齐。如果你指定 Character 变量(除了数字外的任何字符),这个字符就成为输入的制表符。Character 变量的缺省值是 ASCII 制表符。
-F, -f, –form-feed
使用一个填写表格的字符开始新的一页。(否则 pr 命令发出一串填写行的字符。)如果标准输出是工作站,则在第一页开始之前暂停。这个标志与 -f 标志等价。
-h HEADER, –header=HEADER
使用指定的头字符串作为页眉。如果 -h 标志没有使用,页眉的缺省值由 File 参数指定。
-i[CHAR[WIDTH]], –output-tabs[=CHAR[WIDTH]]
在可能的地方插入制表符到字符位置来代替空格。如下:Gap+1, 2*Gap+1, 和 3*Gap+1, 等等。Gap 的缺省值是 8。如果为 Character 变量指定一个值(除了数字外的任何字符),这个字符被用作输出制表符。
-J, –join-lines merge full lines, turns off -W line truncation, no column
alignment, –sep-string[=STRING] sets separators
-l PAGE_LENGTH, –length=PAGE_LENGTH
覆盖 66 行的缺省值,按照 Lines 变量值指定的值重新设置页的长度。如果 Lines 值小于头和尾部深度和(用行计算),头和尾部就被取消(好像 -t 标志起作用一样)。
-m, –merge 合并文件。标准输出有格式,所以 pr 命令从每个由 File 参数指定的文件写一行,并列地写入基于列位置的数目而固定等宽的文本列。这个标志不能用于 – Column 标志。
-n[SEP[DIGITS]], –number-lines[=SEP[DIGITS]]
根据 Width 变量指定位数的数目提供行号。缺省值是 5 位数。行号占据每一个缺省输出的文本列的或者当 -m 标志被设置时的每个输出行的开头的 Width+1 列位置。 如果 Character 变量被指定(任何非数字字符),它被附加到行号上把行号跟接下来的内容分隔开。缺省的分隔符是制表符。
-N NUMBER, –first-line-number=NUMBER
start counting with NUMBER at 1st line of first
page printed (see +FIRST_PAGE)
-o MARGIN, –indent=MARGIN
Offset 每行缩进由 Offset 变量指定的字符位置的数目。每行字符位置总数就是宽度和偏移量的和。Offset 的缺省值是 0。
-r, –no-file-warnings
如果系统不能打开文件,不显示诊断信息。
-s[CHAR],–separator[=CHAR]
用 Character 变量指定的单个字符取代相应的空格数目来分隔列。Character 变量的缺省值是 ASCII 制表符。
-SSTRING, –sep-string[=STRING]
separate columns by STRING,
without -S: Default separator with -J and
otherwise (same as -S” “), no effect on column options
-t, –omit-header 不要显示五行的标识头和五行的页脚。每个文件最后一行在该页最后没有空格后就停止。
-T, –omit-pagination
omit page headers and trailers, eliminate any pagination
by form feeds set in input files
-v, –show-nonprinting
use octal backslash notation
-w PAGE_WIDTH, –width=PAGE_WIDTH
set page width to PAGE_WIDTH (72) characters for
multiple text-column output only, -s[char] turns off (72)
-W PAGE_WIDTH, –page-width=PAGE_WIDTH
set page width to PAGE_WIDTH (72) characters always,
truncate lines, except -J option is set, no interference
with -S or -s
示例:
1. 打印包含页眉和页码的文件,请输入:
pr prog.c | qprt
这将页眉加到 prog.c 文件,并发送到 qprt 命令。页眉包括文件的最后一次修改的日期,文件名和页码。
2. 要指定一个标题,请输入:
pr -h “MAIN PROGRAM” prog.c | qprt
这会打印 prog.c 文件,使用标题 Main Program 来代替文件名。修改日期和页码仍旧打印。
3. 要打印有多个列的文件,请输入:
pr -3 word.lst | qprt
这会打印 word.lst 文件到三个垂直的列。
4. 要在纸上并列打印几个文件。
pr -m -h “Members and Visitors” member.lst visitor.lst | qprt
这将并列打印有标题 Members 和 Visitors 的 member.lst 和 visitor.lst 文件。
5. 要为以后使用修改文件,请输入:
pr -t -e prog.c > prog.notab.c
这用空格代替 prog.c 文件中的制表符,并把结果存入 prog.notab.c 文件。制表符的位置是每八列一个(就是 9,17,25,33, . . .)。. -e 标志告诉 pr 命令替换制表符;-t 标志则去除页眉。
6.rpm -qa | sort | pr –column=2 | less 列出所有软件包并按字母排序,使用pr命令将列表由一栏编排成两栏,并标上页码,最后使用less分页查看
7.rpm -qa | sort | pr –column=2 > software.txt 将pr输出保存为文件
8.rpm -qa | sort | pr –column=2 | lpr 将pr输出发送到打印机上