LEXGROG
Section: Утилиты просмотра справочных страниц (1)
Updated: 2020-06-22
Page Index
НАЗВАНИЕ
lexgrog - анализирует заголовочную информацию справочных страниц
СИНТАКСИС
lexgrog [
-m|
-c] [
-dfw?V] [
-E кодировка]
файл ...
ОПИСАНИЕ
lexgrog — это реализация традиционной "groff guess" утилиты с
помощью
lex. Она читает список файлов из командной строки, которые
являются файлами исходников справочных страниц или уже отформированными
("cat") страницами, и показывает их названия и описания, используемые
apropos и
whatis, список предварительных фильтров обработки, требуемый
man страницей перед тем как она будет передана
nroff или
troff, или
обеим программам.
Если входные данные неправильно отформатированы, lexgrog выведет
"parse failed"; это может оказаться полезным для внешних программ,
которым нужно проверять правильность написания man страниц. Если в качестве
одного из имён файлов lexgrog передан символ "-", то данные будут
читаться из стандартного входного потока; если любой входной файл сжат, то
будет автоматически читаться его расжатая версия.
ПАРАМЕТРЫ
- -d, --debug
-
Показывать отладочную информацию.
- -m, --man
-
Анализировать входные данные как файлы исходников справочных
страниц. Является действием по умолчанию, если не указан параметр --man
или --cat.
- -c, --cat
-
Анализировать входные данные как уже отформатированные справочные страницы
("cat страницы"). --man и --cat не могут указываться
одновременно.
- -w, --whatis
-
Показать название и описание из заголовка справочной страницы, используемого
apropos и whatis. Является действием по умолчанию, если не указан
параметр --whatis или --filters.
- -f, --filters
-
Показать список фильтров, необходимых для предварительной обработки
справочной страницы перед форматированием с помощью nroff или troff.
- -E кодировка, --encoding кодировка
-
Использовать кодировку вместо предполагаемой кодировки символов страницы.
- -?, --help
-
Показать справочное сообщение и закончить работу.
- --usage
-
Показать короткое сообщение об использовании и завершить работу.
- -V, --version
-
Показать информацию о версии.
КОД ВЫХОДА
- 0
-
Успешное выполнение программы.
- 1
-
Ошибка использования.
- 2
-
lexgrog не удалось разобрать один или более входных файлов.
ПРИМЕРЫ
$ 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
ЧТО АНАЛИЗИРУЕТСЯ
mandb (использует тот же код, что и
lexgrog) анализирует раздел
NAME (
НАЗВАНИЕ), расположенный в самом начале каждой справочной
страницы, в поиске названий и описаний возможностей. Хотя анализатор
допускает различные вариации и понимает много различных форматов, которые
сложились за время использования, иногда он не может извлечь требуемую
информацию.
При использовании традиционных наборов макросов man, правильно
оформленный раздел NAME выглядит так:
-
.SH NAME
foo \- программа, выполняющая что-то
Некоторые справочные пейджеры требуют '\-' точно как показано;
mandb более терпим, но для совместимости с другими системами всё же
лучше оставлять символ обратной косой черты.
Слева от черты могут быть несколько названий, разделённых через
запятую. Названия с пробелами будут игнорироваться во избежании необычного
поведения для определённо плохо оформленных разделов NAME. У текста
справа нет специального формата, и он может располагаться на нескольких
строках. Если в одной справочной странице содержатся несколько свойств с
различными описаниями, то используется следующая форма:
-
.SH NAME
foo, bar \- программы, выполняющие что-то
.br
baz \- программа ничего не делающая
(Вместо макроса разрыва .br может использоваться макрос, начинающий
новый параграф, типа .PP.)
Если используется BSD-производный набор макросов mdoc, то правильно
оформленный раздел NAME выглядит так:
-
.Sh NAME
.Nm foo
.Nd программа, выполняющая что-то
Есть несколько распространённых причин, по которым анализ может завершаться
неудачно. Иногда авторы справочных страниц заменяют '.SH NAME' на
'.SH MYPROGRAM', и поэтому mandb не может найти раздел, из
которого нужно извлекать информацию. Иногда авторы включают раздел NAME, но
размещают его в свободной форме, а не как положено 'название \-
описание'. Однако любой синтаксис, приведённый выше, будет понят.
СМОТРИТЕ ТАКЖЕ
apropos(1),
man(1),
whatis(1),
mandb(8)
ЗАМЕЧАНИЯ
lexgrog пытается проанализировать файлы, содержащие запросы .so, но
сможет это сделать, если только файлы правильно установлены в иерархии
справочных страниц.
АВТОР
Авторы кода, используемого
lexgrog для сканирования справочных страниц:
Wilf. (G.Wilford@ee.surrey.ac.uk).Fabrizio Polacco (fpolacco@debian.org).Colin Watson (cjwatson@debian.org).
Колин Ватсон (Colin Watson) написал текущий вариант для интерфейса командной
строки, а также данную справочную страницу.
ОШИБКИ
https://savannah.nongnu.org/bugs/?group=man-db