Ich würde gerne Handbuchseiten ausdrucken, bzw. als Textdatei formatieren. Die Seiten liegen aber in einem abstrusen Format vor. Wie kann ich es anstellen, diese Dinger in Textformat zu bringen?

Handbuchseiten liegen in einem Format vor, das für ein Textsatzprogramm mit Namen groff gedacht ist. Dieses Textsatzprogramm kann verschiedene Ausgabeformate unterstützen, z.B. ASCII, Postscript, dvi, …

Zusätzlich ist die Handbuchseite in der Regel mit gzip komprimiert. Bevor sie mit groff bearbeitet werden kann, muß sie dekomprimiert werden. Dazu dient uns hier das Programm zcat, das komprimierte Dateien dekomprimiert auf die Standard-Ausgabe schreibt.

Der Befehl zur manuellen Formatierung einer Handbuchseite ist grundsätzlich also

  zcat Handbuchseitendatei.gz | groff -Tformat -mandoc

Dabei können als Format z.B. ascii für reinen Text, ps für Postscript oder html gewählt werden. Das Ergebnis wird wieder auf die Standard-Ausgabe geschrieben und kann so entweder an ein entsprechendes Programm weitergepiped werden oder in eine Datei gespeichert werden.

Um also die Handbuchseite des Befehls cp(1) manuell in Postscript zu verwandeln und sie dann in die Datei cp.ps abzulegen, schreiben Sie

  zcat /usr/share/man/man1/cp.1.gz | groff -Tps -mandoc > cp.ps

Hätten wir sie in eine Textdatei oder in eine Webseite (HTML) verwandeln wollen, hätten wir schreiben müssen

  zcat /usr/share/man/man1/cp.1.gz | groff -Tascii -mandoc > cp.txt
  zcat /usr/share/man/man1/cp.1.gz | groff -Thtml -mandoc > cp.html

Speziell für die Umwandlung von Handbuchseiten in verschiedene Formate gibt es auch noch das Programm rman, das Handbuchseiten verschiedenster Formate bearbeiten kann, und Ausgabeformate wie HTML, RTF, ASCII und LaTeX erstellt.

  zcat /usr/share/man/man1/cp.1.gz | rman -f ascii > cp.txt
  zcat /usr/share/man/man1/cp.1.gz | rman -f rtf > cp.rtf
  zcat /usr/share/man/man1/cp.1.gz | rman -f html > cp.html

würde also aus der Handbuchseite von cp eine Textdatei, eine RTF-Datei und eine Webseite produzieren.