用lpr打印多个文件


0

使用lpr-p选项打印多个文件时,第一个文件的名称会打印在所有文件的标题中。如何修改此行为,以便在每个文件的标题中打印正确的文件名?

例如,可以通过以下两个命令之一打印三个文件“ file1.txt”,“ file2.txt”和“ file3.txt”:

lpr -p file1.txt file2.txt file3.txt
lpr -p file*.txt

但是,在两种情况下,“ file1.txt”都打印在每个文件的标题行中。我希望将“ file2.txt”打印在file2的标题中,依此类推(而不必分别打印每个文件la lpr -p file1.txt; lpr -p file2.txt; lpr -p file3.txt)。

Answers:


2

LPR手册页指出:

-hheader       Specify  a title to be used on the banner page (if any).
               Default title is the name of the file.

与此无关(因为它声明:“默认标题是文件名”,因为您没有传递-h参数)。因此,至少在一眼看来,这似乎是一种不当行为。再看一遍,我注意到您的-p参数:

-p             Add pr(1) style headers to each page (text only)

看一下pr(1)手册页

use a centered HEADER instead of filename in page header, -h  ""
prints a blank line, don't use -h""

我的猜测是,此“居中标头”仅计算一次,而不是分别为每个文件计算一次。因此,您可以在没有-p参数的情况下尝试两种方法,以检查是否引起问题-或尝试第三种方法:

for myfile in file*.txt; do lpr -p $myfile; done

它将lpr分别为每个文件调用,从而摆脱了所描述的问题。


lpr对于一批文件只计算一次标头似乎很奇怪,但是我怀疑您已经确定了罪魁祸首。正如您所建议的,我将不得不解决循环构造问题。谢谢。
user001 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.