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

Решение

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

Другие вопросы по тегам