使用 lpr 打印多个文件

使用 lpr 打印多个文件

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 的标题中,依此类推(而不必像 那样分别打印每个文件lpr -p file1.txt; lpr -p file2.txt; lpr -p file3.txt)。

答案1

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分别调用每个文件,从而使您摆脱所描述的问题。

相关内容