Drucken mehrerer Dateien mit lpr

4855
user001

Beim Drucken mehrerer Dateien mit lprund der -pOption wird der Name der ersten Datei für alle Dateien in der Kopfzeile gedruckt. Wie kann dieses Verhalten so geändert werden, dass für jede Datei der richtige Dateiname in der Kopfzeile gedruckt wird?

Als Beispiel könnten drei Dateien "file1.txt", "file2.txt" und "file3.txt" mit einem der folgenden Befehle gedruckt werden:

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

In beiden Fällen wird jedoch "file1.txt" in der Kopfzeile jeder Datei gedruckt. Ich möchte, dass "file2.txt" im Header für file2 und so weiter gedruckt wird (ohne jede Datei separat drucken zu müssen lpr -p file1.txt; lpr -p file2.txt; lpr -p file3.txt).

0

1 Antwort auf die Frage

2
Izzy

Die lpr-Manpage besagt:

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

Und sonst nichts dazu (was bedeutet: "Standardtitel ist der Name der Datei", da Sie den -hParameter nicht übergeben haben ). Es sieht also zumindest auf den ersten Blick wie ein Fehlverhalten aus. Bei einem zweiten Blick bemerke ich Ihren -pParameter:

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

Werfen Sie einen Blick auf die Manpage pr (1) :

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

Meine Vermutung wäre, dass diese "zentrierte Kopfzeile" nur einmal berechnet wird, statt für jede Datei separat. Sie können also beide Ansätze ohne den -pParameter ausprobieren, um zu prüfen, ob dadurch das Problem auftritt - oder einen dritten Ansatz:

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

das würde lprfür jede Datei separat aufrufen und Sie so das beschriebene Problem loswerden.

Es scheint seltsam, dass lpr den Header nur einmal für einen Stapel von Dateien berechnet, aber ich vermute, Sie haben den Täter identifiziert. Ich werde mich mit einem Schleifenkonstrukt zufrieden geben müssen, wie Sie vorgeschlagen haben. Vielen Dank. user001 vor 12 Jahren 0