打印工具
语法:pr [option] [file(s)]
用途:将文本文件编页,供打印用,只是过滤数据为打印做准备
主要选项:
-cn:产生n栏的输出 可缩写为-n
-f:在首页之后的每一页标题前前置一个ASCII分页字符标题
-h althdr:将页标题内的文件名称,改用字符串althdr取代
-ln:产生n行的页面
-on:输出位移n个空白
-t:不显示标题
-wn:每行至多n个字符
行为模式:会读取指定文件,如未指定,则读取标准输入
其中,比较常用的是:-l选项设置输出页面长度、-w设置页面宽度、-o设置文本位移
另外-f(有些系统为-F)也是必备的,一般用法如下:
pr -f -l60 -o10 -w65 file(s) | lp
实例1:将25个单词格式化为5栏的状态
[gz_fieldyang@ test ~]$ sed -n -e 199905,199929p /usr/share/dict/words|pr -c5
2016-03-15 11:52 Page 1
intracorporea intracosmical intractable intracutaneou intradepartme
intracorpuscu intracostal intractablene intracystic intradermal
intracortical intracranial intractably intrada intradermally
intracosmic intracraniall intractile intraday intradermic
intracosmical intractabilit intracutaneou intradepartme intradermical
实例2:将25个单词格式化为5栏的状态并用-t选项省略页标题
[gz_fieldyang@ test ~]$ sed -n -e 199905,199929p /usr/share/dict/words|pr -c5 -t
intracorporea intracosmical intractable intracutaneou intradepartme
intracorpuscu intracostal intractablene intracystic intradermal
intracortical intracranial intractably intrada intradermally
intracosmic intracraniall intractile intraday intradermic
intracosmical intractabilit intracutaneou intradepartme intradermical
实例3:栏宽太小,则截去超出的数据
[gz_fieldyang@test ~]$ sed -n -e 199905,199929p /usr/share/dict/words|pr -c10 -t
intrac intrac intrac intrac intrac intrac intrad intrad intrad intrad
intrac intrac intrac intrac intrac intrac intrad intrad intrad intrad
intrac intrac intrac intrac intrac
[gz_fieldyang@gimei-test ~]$
#######################################################
其他系统打印工具
大部分PostScript的打印机不接受纯文本,这时像TEX与troff之类的排版系统,
会将标记文件转换为PostScript或是PDF的页面映像,其显示出的样子无法控制。
解决方法就是文本到PostScript的过滤器,例如a2ps,lptops,或Sun Solaris专属的mp
用法如下:
a2ps file > file.ps #产生文件的Postscript列表
a2ps file | lp #打印文件的Postscript列表
lptops file > file.ps #产生文件的Postscript列表
lptops file | lp #打印文件的Postscript列表
mp file > file.ps #产生文件的Postscript列表
mp file | lp #打印文件的Postscript列表
BSD,IBM AIX及Sun Solaris 系统还提供vgrind命令:
它用来过滤以各种程序语言构成的文件,将他们转换为troff输入,
将数据进行设置排版后,输出为Postscript
随后的tgrind提供类似功能:其产生的是TEX输入,迅速产生Postscript与PDF输出
实例1:
cat > hello.c
#include<stdio.h>
int main(){
printf("hello,");
printf("world");
printf("\n");
return 0;
}
[....@... ~]$ tgrind -p hello.c #排版与打印hello.c
[....@... ~]$ vgrind hello.c | lp #排版与打印hello.c
[....@... ~]$ tgrind -i 1 -fn Bookman -p hello.c #打印列表