imprimindo vários arquivos com lpr

0

Ao imprimir vários arquivos usando lpr e a opção -p , o nome do primeiro arquivo é impresso no cabeçalho de todos os arquivos. Como esse comportamento pode ser modificado para que o nome correto do arquivo seja impresso no cabeçalho de cada arquivo?

Como exemplo, pode-se imprimir três arquivos "file1.txt", "file2.txt" e "file3.txt" por um dos seguintes comandos:

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

Em ambos os casos, no entanto, "file1.txt" é impresso na linha de cabeçalho de cada arquivo. Eu gostaria que "file2.txt" fosse impresso no cabeçalho do arquivo2 e assim por diante (sem precisar imprimir cada arquivo separadamente a la lpr -p file1.txt; lpr -p file2.txt; lpr -p file3.txt ).

    
por user001 26.07.2012 / 03:58

1 resposta

2

A página man do lpr declara:

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

E nada mais a respeito disso (o que significa: "O título padrão é o nome do arquivo", já que você não passou o parâmetro -h ). Então parece um mau comportamento, pelo menos à primeira vista. Em uma segunda olhada, observo seu parâmetro -p :

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

Veja a página de manual pr (1) :

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

Meu palpite é que esse "cabeçalho centralizado" é calculado apenas uma vez, em vez de cada arquivo separadamente. Assim, você poderia testar suas duas abordagens sem o parâmetro -p para verificar se isso apresenta o problema - ou tente uma terceira abordagem:

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

que invocaria lpr para cada arquivo separadamente e, assim, livraria você do problema descrito.

    
por 26.07.2012 / 13:16