VMware ESXi and vSphere Cluster Management
Linux pr-Befehl: Dateien für den Druck formatieren
Lerne, wie du mit pr Textdateien seitenweise formatierst, Seitenköpfe anpasst, Seitenlängen festlegst und die Ausgabe für Prüfung oder Druck speicherst.
Der Linux-Befehl pr bereitet Textdateien für eine druckähnliche, seitenorientierte Ausgabe auf. Er fügt Seitenköpfe und Seitenumbrüche hinzu und kann Inhalte mehrspaltig darstellen.
Wichtig: pr verändert die Quelldatei nicht. Die formatierte Darstellung wird über die Standardausgabe ausgegeben, also normalerweise im Terminal. Du kannst diese Ausgabe anschließend prüfen, in eine neue Datei umleiten oder an einen Druckworkflow weitergeben.
Was macht der pr-Befehl?
pr steht für eine seitenorientierte Aufbereitung von Text. Der Befehl teilt die Ausgabe in Seiten ein und versieht sie standardmäßig mit einem Seitenkopf. Das ist hilfreich, wenn eine längere Textdatei lesbar ausgedruckt oder vor dem Drucken kontrolliert werden soll.
Ein Seitenkopf ist eine wiederkehrende Kopfzeile mit Informationen zur Ausgabe, zum Beispiel Datum beziehungsweise Zeit, Dateiname und Seitenzahl. Dadurch lässt sich eine einzelne gedruckte Seite später leichter zuordnen.
Im Unterschied zu cat, das eine Datei im Wesentlichen direkt ausgibt, konzentriert sich pr auf Seitenlayout, Kopfzeilen und gegebenenfalls Spalten. Es ist kein Werkzeug zum Bearbeiten der Quelldatei.
Grundsyntax
pr [OPTIONEN] DATEIEine Option ist ein Parameter, der das Verhalten eines Befehls verändert. Die Datei kann als relativer oder absoluter Pfad angegeben werden.
pr datei.txtDieser Befehl liest datei.txt und schreibt die formatierte Ausgabe auf die Standardausgabe. Der normale Ausgabekanal ist meist das Terminal. Fehlermeldungen wie ein nicht gefundener Dateipfad werden dagegen über die Standardfehlerausgabe ausgegeben.
Die Quelle bleibt unverändert. Mit einer Dateiumleitung wird die Standardausgabe in eine andere Datei geschrieben:
pr datei.txt > formatierte-ausgabe.txtDer Operator > legt die Zieldatei neu an oder überschreibt eine vorhandene Datei. Wähle deshalb bei wichtigen Dateien einen neuen Namen und prüfe den Zielpfad sorgfältig.
Standardformatierung und Seitenkopf
Ohne zusätzliche Optionen erzeugt pr eine seitenweise Ausgabe. Der Standard-Seitenkopf enthält typischerweise:
- Datum beziehungsweise Zeit der Formatierung,
- den Namen der Eingabedatei,
- die aktuelle Seitenzahl.
Zwischen den Seiten sorgt pr für Seitenumbrüche. Bei längeren Dateien wiederholt sich der Seitenkopf auf jeder Ausgabeseite. Das erleichtert die Orientierung beim Lesen und die Zuordnung einzelner Blätter beim Drucken.
Einen eigenen Text im Seitenkopf setzen
Mit der Option -h ersetzt du den üblichen Dateinamen im Seitenkopf durch einen frei gewählten Headertext. Ein Header ist hier der Text des Seitenkopfs.
pr -h "Monatsbericht" datei.txtAuf jeder formatierten Seite erscheint dann Monatsbericht als aussagekräftiger Titel. Stehen im Titel Leerzeichen, muss der gesamte Text in Anführungszeichen stehen. Ohne Anführungszeichen würde die Shell die einzelnen Wörter als getrennte Argumente behandeln.
Seitenlänge anpassen
Mit -l gibst du die gewünschte Anzahl von Zeilen pro Seite an. Die Seitenlänge beeinflusst sowohl die Seitenumbrüche als auch den Platz, den der Seitenkopf innerhalb der Ausgabe benötigt.
pr -l 20 datei.txtFür eine Übungsdatei ist eine kleine Seitenlänge praktisch: Bei 20 Zeilen pro Seite werden Seitenumbrüche schnell sichtbar. Für einen echten Ausdruck solltest du die Ausgabe mit einer kleinen Testdatei oder einer Vorschau prüfen.
Du kannst mehrere Optionen kombinieren:
pr -h "Monatsbericht" -l 20 datei.txtDieser Aufruf verwendet den eigenen Titel und formatiert die Datei mit 20 Zeilen je Seite. Wenn Seitenumbrüche an unerwarteten Stellen auftreten, kann der Seitenkopf selbst einen Teil der verfügbaren Seitenhöhe beanspruchen. Passe die Seitenlänge schrittweise an.
Ausgabe zuerst prüfen
Bevor du eine formatierte Datei druckst, solltest du sie im Terminal oder mit einem Pager kontrollieren. Ein Pager zeigt lange Ausgaben abschnittsweise an.
pr datei.txt | lessDas Zeichen | ist eine Pipe. Sie leitet die Ausgabe von pr als Eingabe an less weiter. So kannst du Seitenkopf, Zeilenumbrüche und den Text prüfen, ohne die gesamte Ausgabe auf einmal durchlaufen zu lassen.
Nach der Kontrolle kannst du die Ausgabe speichern:
pr -h "Monatsbericht" -l 20 datei.txt > druckfassung.txtDie Datei druckfassung.txt enthält die formatierte Darstellung; datei.txt bleibt unverändert.
Weitergabe an einen Druckworkflow
Wenn auf dem System ein Druckdienst eingerichtet ist, kann die Ausgabe konzeptionell an einen passenden lokalen Druckbefehl weitergegeben werden. Typische Werkzeuge in Linux-Druckworkflows sind beispielsweise lp oder lpr.
pr datei.txt | lpOb dieser konkrete Aufruf funktioniert, hängt von der lokalen Druckerinstallation und dem verfügbaren Druckdienst ab. Deshalb ist es sinnvoll, die Ausgabe zunächst mit less zu prüfen oder in einer Datei zu speichern.
Geeignete und ungeeignete Eingaben
pr ist hauptsächlich für normale Textdateien gedacht, etwa Protokolle, Quelltext, Listen oder einfache Berichte. Die Datei muss lesbar sein, und der angegebene Pfad muss korrekt sein.
- Geeignet: reine Textdateien mit lesbaren Zeilen.
- Ungeeignet: Binärdateien wie ausführbare Dateien oder komprimierte Archive.
- Problematisch: bereits komplex formatierte Dokumentformate, bei denen Layoutinformationen nicht als einfacher Text vorliegen.
- Zu prüfen: Dateikodierung und enthaltene Steuerzeichen, wenn Sonderzeichen unleserlich erscheinen.
Bei Binärdateien oder komplexen Dokumenten kann die Ausgabe zufällige Zeichen, Steuerzeichen oder ein unbrauchbares Layout enthalten. Verwende für den Test am besten eine gewöhnliche Textdatei.
Fehlerbehebung
Datei nicht gefunden
Problem: Die Shell oder pr meldet, dass die Datei nicht gefunden werden kann.
- Der Dateiname wurde falsch geschrieben.
- Du befindest dich im falschen aktuellen Verzeichnis.
- Der benötigte relative oder absolute Pfad fehlt.
Prüfe den Dateinamen, den aktuellen Verzeichnisinhalt und den vollständigen Pfad. Achte besonders auf Groß- und Kleinschreibung.
Eigener Titel erscheint nicht
Problem: Der gewünschte Headertext wird nicht angezeigt.
- Die Option
-hwurde vergessen. - Ein Titel mit Leerzeichen wurde nicht als ein Argument übergeben.
Verwende beispielsweise pr -h "Monatsbericht" datei.txt. Die Anführungszeichen sorgen dafür, dass der Titel zusammenbleibt.
Seitenumbrüche passen nicht
Problem: Der Umbruch erfolgt an einer unerwarteten Stelle.
Die festgelegte Zeilenzahl mit -l passt möglicherweise nicht zum gewünschten Format. Außerdem benötigt der Seitenkopf Platz. Teste eine kleine Datei und ändere die Seitenlänge schrittweise.
Gespeicherte Ausgabe ist falsch
Problem: Die Zieldatei enthält nicht die erwartete Darstellung.
- Die Umleitung mit
>wurde vergessen. - Der Zielpfad ist nicht beschreibbar.
- Eine vorhandene Datei wurde durch
>überschrieben.
Prüfe Befehl, Zielpfad und Dateirechte. Verwende für wichtige Ergebnisse einen neuen Dateinamen.
Sonderzeichen oder unleserliche Ausgabe
Problem: Die formatierte Ausgabe enthält unerwartete Zeichen.
Wahrscheinliche Ursachen sind eine Binärdatei, ungeeignete Steuerzeichen oder eine problematische Dateikodierung. Verwende eine normale Textdatei und schließe ungeeignete Eingabeformate aus.
Praktischer Ablauf
- Prüfe, ob die Eingabe eine lesbare Textdatei ist und der Pfad stimmt.
- Führe zunächst
pr datei.txtaus. - Betrachte lange Ausgaben mit
pr datei.txt | less. - Setze bei Bedarf einen eigenen Titel mit
-h. - Passe die Seitenlänge mit
-lan. - Speichere die geprüfte Darstellung mit
>in einer neuen Datei oder übergib sie an einen eingerichteten Druckworkflow.
Merksätze für die Prüfung
prformatiert Text für eine seitenorientierte, druckähnliche Ausgabe.- Die Quelldatei wird nicht verändert.
- Die Standardausgabe geht normalerweise an das Terminal.
-hsetzt einen eigenen Text im Seitenkopf; Leerzeichen erfordern Anführungszeichen.-llegt die Anzahl der Zeilen pro Seite fest.>speichert die Ausgabe in einer Datei,|übergibt sie an einen anderen Befehl.
Für die reine Anzeige ohne Seitenformatierung ist cat ausreichend. Für die kontrollierte Betrachtung langer Ausgaben eignen sich less und more. fmt formatiert dagegen vor allem Textabsätze, während pr das Seitenlayout bearbeitet.
Mehr zum Thema findest du unter Linux pr-Befehl.