печать нескольких файлов с помощью lpr

4578
user001

При печати нескольких файлов с использованием 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).

0

1 ответ на вопрос

2
Izzy

The lpr man page states:

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

And nothing else concerning this (meaning, as it states: "Default title is the name of the file", as you didn't pass the -h parameter). So it looks like a misbehaviour, at least at first sight. On a second look, I notice your -p parameter:

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

Taking a look at the pr(1) man page:

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

My guess would be that this "centered header" is only calculated once, instead for each file separately. So you could try your both approaches without the -p parameter to check whether that introduces the problem -- or try a third approach:

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

which would invoke lpr for each file separately, and thus get you rid of the described problem.

Кажется странным, что lpr вычисляет заголовок только один раз для пакета файлов, но я подозреваю, что вы определили виновника. Я должен согласиться на конструкцию цикла, как вы предложили. Спасибо. user001 12 лет назад 0

Похожие вопросы