LEXGROG(1)

BEZEICHNUNG
lexgrog - wertet die Kopfzeilen-Information von Handbuchseiten aus

ÜBERSICHT
lexgrog [-m|-c] [-dfw?V] [-E Kodierung] Datei ...

BESCHREIBUNG
lexgrog ist eine Lex-Implementierung des traditionellen Dienstprogramms »groff guess« für die Auswertung von Handbuch-Quelldateien oder vorformatierten »Cat«-Seiten. Es liest die Liste der Dateien in seiner Befehlszeile. Seine Ausgabe sind entweder die Namen und Beschreibungen in der Form, die apropos und whatis verwenden oder die Liste der für die Seite erforderlichen Vorverarbeitungs-Filter für die Erzeugung von Nroff/Troff oder aber beides.

Wenn seine Eingabe schlecht formatiert ist, wird lexgrog »parse failed« ausgeben. Das können externe Programme nutzen, die Handbuchseiten auf Fehlerfreiheit prüfen. Wenn einer der Eingabedateien von lexgrog »-« ist, wird das Programm von der Standardeingabe lesen. Ist eine Eingabedatei komprimiert, wird sie automatisch dekomprimiert.

OPTIONEN

-d, --debug
    Ausgabe von Debug-Informationen

-m, --man
    Interpretiert die Eingabe als Handbuchseiten-Quelltext. Sind weder --man noch --cat gewählt, greift diese Voreinstellung.

-c, --cat
    Interpretiert die Eingabe als vorformatierte Handbuchseiten (»Cat-Seiten«). Die Optionen --man und --cat schließen sich gegenseitig aus.

-w, --whatis
    Zeigt den Namen und die Beschreibung aus dem Kopf der Handbuchseite so an, wie sie von apropos und whatis verwendet werden. Das ist die Voreinstellung, wenn weder --whatis noch --filters gewählt wurde.

-f, --filters
    Zeigt die Liste der erforderlichen Filter für die Aufbereitung der Handbuchseite vor der Formatierung mit Nroff oder Troff.

-E Kodierung, --encoding Kodierung
    Statt des vermuteten Zeichensatzes der Seite die Kodierung verwenden.

-?, --help
    Hilfetext anzeigen und beenden

--usage
    zeigt eine kurze Anwendungszusammenfassung an und beendet das Programm.

-V, --version
    Versionsinformation anzeigen und beenden

EXIT-STATUS

0   erfolgreiche Programmausführung

1   Fehler beim Aufruf

2   Lexgrog konnte eine oder mehrere seiner Eingabedateien nicht auswerten.

BEISPIELE
  $ lexgrog man.1
  man.1: "man - an interface to the system reference manuals"
  $ lexgrog -fw man.1
  man.1 (t): "man - an interface to the system reference manuals"
  $ lexgrog -c whatis.cat1
  whatis.cat1: "whatis - display manual page descriptions"
  $ lexgrog broken.1
  broken.1: parse failed

WAS BEDEUTET PARSEN
Die Programme mandb und lexgrog verwenden den gleichen Code. mandb durchsucht den Abschnitt BEZEICHNUNG am Anfang jeder Handbuchseite nach den Namen und den jeweils beschriebenen Funktionen. Obwohl der Parser (das Auswerteprogramm) ziemlich tolerant ist, weil er sich mit etlichen verschiedenen, früher genutzten Formaten befassen muss, kann er ab und zu die gewünschte Information nicht entnehmen.

Wenn Sie die den traditionellen Makrosatz »man« verwenden, wird ein gültiger BEZEICHNUNGs-Abschnitt ungefähr so aussehen:

        .SH BEZEICHNUNG
        foo \- Programm, das etwas erledigt

Einige Handbuchanzeigeprogramme erfordern das ‘\-Reihenfolge. mandb ist toleranter, aber für die Kompatibilität mit anderen Systemen ist es dennoch eine gute Idee, den Backslash (umgekehrten Schrägstrich) beizubehalten.

Auf der linken Seite können verschiedene, durchs Kommas getrennte Namen stehen. Namen mit Leerzeichen werden ignoriert, um bestimmte »krankhafte« Verhaltensweisen bei schlecht formatierten BEZEICHNUNGs-Abschnitten zu vermeiden. Der Text auf der rechten Seite unterliegt keinen Formvorschriften und kann sich über mehrere Zeilen erstrecken. Wenn in der Handbuchseite mehrere Merkmale mit unterschiedlichen Beschreibungen dokumentiert werden, wird das folgende Format verwendet:

        .SH BEZEICHNUNG
        foo, bar \- Programme, die etwas erledigen
        .br
        baz \- Programm, das nichts tut

(Anstelle des Zeilenvorschub-Makros .br kann auch ein Makro verwendet werden, das einen neuen Absatz beginnt, z.B. .PP.)

Wird der von BSD abgeleitete mdoc-Makrosatz verwendet, hat ein gültiger BEZEICHNUNGs-Abschnitt ungefähr das folgende Aussehen:

        .Sh BEZEICHNUNG
        .Nm foo
        .Nd Programm, das etwas erledigt
Es gibt mehrere häufige Gründe dafür, dass die von Whatis durchgeführte Auswertung fehlschlägt. Manchmal ersetzen Autoren von Handbuchseiten ‘.SH BEZEICHNUNG’ durch ‘.SH MEINPROGRAMM’. Dann kann mandb den Abschnitt nicht finden, aus dem es die benötigten Informationen entnehmen soll. Manchmal verfassen Autoren einen Abschnitt BEZEICHNUNG, aber platzieren dort anstelle von ‘Name \- Beschreibung’. frei formatierten Text. Es sollten aber beliebige, dem oben Beschriebenen ähnliche Schreibweisen akzeptiert werden.

SIEHE AUCH
apropos(1), man(1), whatis(1), mandb(8)

ANMERKUNGEN
Lexgrog versucht, Dateien mit ».so«-Anfragen auszuwerten, hat aber nur dann Aussicht auf Erfolg, wenn die Seiten ordnungsgemäß in einer Handbuchseiten-Hierarchie installiert sind.

AUTOR
Der von Lexgrog verwendete Code für die Auswertung von Handbuchseiten wurde geschrieben von:

Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).

Colin Watson hat sowohl das aktuelle Befehlszeilen-Frontend als auch die Handbuchseite geschrieben.

FEHLER
https://gitlab.com/man-db/man-db/-/issues
https://savannah.nongnu.org/bugs/?group=man-db