LEXGROG
Section: Manual pager utils (1)
Updated: 2019-10-23
Index
Return to Main Contents
名前
lexgrog - man ページのヘッダ情報を解析する
書式
lexgrog
[-m|-c]
[-dfw?V]
[-E
encoding]
file
...
説明
lexgrog
は昔の "groff guess" ユーティリティを
lex
で実装したものである。
このプログラムは、コマンドラインから man ページソースファイルまたは
整形済みの "cat" ページのファイルのリストを読み込む。
そして、
apropos
と
whatis
で使われる名前と要約文を表示するか、
nroff
または
troff
もしくはその両方に渡される前に
man ページに必要とされる前処理フィルタのリストを表示する。
入力のフォーマットが不正な場合、
lexgrog
は "parse failed" と表示する。
これは、他のプログラムが man ページの正しさをチェックする必要がある場合に役立つ。
lexgrog
の入力ファイルの 1 つが "-" の場合、標準入力を読み込む。
入力ファイルが圧縮されている場合、展開されたものが自動的に読み込まれる。
オプション
- -d, --debug
-
デバッグ情報を表示する。
- -m, --man
-
入力を man ページソースファイルとして解析する。
これは、
--man
も
--cat
も指定されない場合のデフォルトである。
- -c, --cat
-
入力を整形済みの man ページ ("cat ページ") として解析する。
--man
と
--cat
は同時に指定できない。
- -w, --whatis
-
man ページのヘッダから名前と要約文を表示する。
これは、
apropos
と
whatis
で使われる。
これは
--whatis
も
--filters
も指定されない場合のデフォルトである。
- -f, --filters
-
nroff
または
troff
で整形する前に、man ページを前処理するのに必要なフィルタのリストを表示する。
- -E encoding, --encoding encoding
-
ページについて推測された文字セットを、
encoding
で上書きする。
- -?, --help
-
ヘルプメッセージを表示して、終了する。
- --usage
-
短い使用法のメッセージを表示して、終了する。
- -V, --version
-
バージョン情報を表示する。
返り値
- 0
-
プログラムの実行に成功した。
- 1
-
使用法のエラー。
- 2
-
lexgrog
が 1 つ以上の入力ファイルの解析に失敗した。
例
$ 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
WHATIS の解析
(lexgrog
と同じコードを使っている)
mandb
は、各マニュアルページにドキュメント化された特徴の
名前と要約文を見つけるために、先頭にある
NAME
セクションを解析する。
歴史的に使われてきたいろいろな形式に対応しているため、
パーサーはとても堅牢ではあるが、
ときどき必要な情報の抽出に失敗すること場合もある。
伝統的な
man
マクロセットを使う場合、正しい
NAME
セクションは以下のようである:
-
.SH NAME
foo \- program to do something
マニュアルページャーによっては、見た目通りに表示するためには、'\-' が必要になる。
mandb
はより堅牢であるが、他のシステムとの互換性を保つためには、
バックスラッシュを使うのは良い考えである。
(ハイフンの) 左側には、複数個の名前をカンマで区切って置くことが出来る。
不正な形式の
NAME
セクションに対して、異常な動作を避けるため、空白を含む名前は無視される。
(ハイフンの) 右側のテキストは、自由形式であり、複数行に渡って書くことが出来る。
複数の特徴についての異なる要約文を、同じマニュアルページに
ドキュメント化する場合、以下の形式が使用される:
-
.SH NAME
foo, bar \- programs to do something
.br
baz \- program to do nothing
(.PP のような新しい段落を開始するマクロが、
改行 (break) マクロ .br の代わりに使える場合もある。)
BSD 由来の
mdoc
マクロセットを使う場合、正しい
NAME
セクションは、以下のようになる:
-
.Sh NAME
.Nm foo
.Nd program to do something
whatis の解析が失敗するいくつかの一般的な理由がある。
マニュアルページの著者が '.SH NAME' を
'.SH MYPROGRAM' に置き換えてしまい、
mandb
が必要な情報を抽出するセクションを見つけられない場合がある。
また、著者が NAME セクションを書いているが、
'name \- description' ではない、自由形式で書いている場合もある。
しかし、上記のような書式も受け付けるべきである。
関連項目
apropos(1),
man(1),
whatis(1),
mandb(8)
注意
lexgrog
は .so リクエストを含むファイルを解析しようとするが、
ファイルがマニュアルページ階層に正しくインストールされている場合にのみ、
正しく解析することが出来る。
作者
man ページをスキャンする
lexgrog
のコードは、以下の作者によって書かれた:
Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).
Colin Watson が、現在のコマンドラインフロントエンドの実装と、
この man ページを書いた。
Index
- 名前
-
- 書式
-
- 説明
-
- オプション
-
- 返り値
-
- 例
-
- WHATIS の解析
-
- 関連項目
-
- 注意
-
- 作者
-
This document was created by
man2html,
using the manual pages.
Time: 13:41:05 GMT, December 27, 2020