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

2

Страница man 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 для каждого файла отдельно, и таким образом избавил бы вас от описанной проблемы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .