NOMBRE
lexgrog - analiza la información de cabecera en páginas man
SINOPSIS
lexgrog [-m|-c] [-dfw?V] [-E codificación] archivo ...
DESCRIPCIÓN
lexgrog es una implementación de la tradicional utilidad “groff guess” en lex. Lee la lista de archivos en su línea de órdenes bien como archivos fuente de página man, bien como páginas preformateadas “cat”, y muestra su nombre y descripción como se utilizó por apropos y whatis, la lista de filtros preprocesados requeridos por la página man antes de que sea pasada por nroff o troff, o ambos.
Si esta entrada está formateada equivocadamente, lexgrog escribirá “parse fallado”; esto puede ser útil para programas externos que necesiten comprobar la corrección de páginas man. Si uno de los archivos de entrada de lexgrog es “-”, leerá desde la entrada estándar; si algún archivo de entrada está comprimido, se leerá automáticamente una versión descomprimida.
OPCIONES
-d, --debug
Escribe información de depuración.
-m, --man
Interpreta la entrada como archivos fuente de página man. Esto es lo predefinido si ni --man ni --cat es dado.
-c, --cat
Entrada interpretada como páginas (“cat”) man preformateadas. --man y --cat pueden no darse simultáneamente.
-w, --whatis
Muestra el nombre y la descripción desde la cabecera de la página man, tal y como la usan apropos y whatis. Esto es lo predeterminado si ni --watis ni --filters está dado.
-f, --filters
Muestra la lista de filtros necesarios para preprocesar la página man antes de formatear con nroff o troff.
-E codificación, --encoding codificación
Anula el conjunto de caracteres supuesto para la página sustituyéndolo por codificación.
-?, --help
Escribe un mensaje de ayuda y termina.
--usage
Escribe mensaje breve sobre uso del programa y termina.
-V, --version
Muestra información sobre la versión.
ESTADO DE SALIDA
0 |
Ejecución del programa correcta. | ||
1 |
Error de uso. | ||
2 |
lexgrog fallo al analizar uno o varios de sus archivos de entrada. |
EJEMPLOS
$ lexgrog man.1
man.1: «man - interfaz para los manuales de referencia
del sistema»
$ lexgrog -fw man.1
man.1 (t): «man - interfaz para los manuales de
referencia del sistema»
$ lexgrog -c whatis.cat1
whatis.cat1: «whatis - muestra las descripciones de
las páginas de manual»
$ lexgrog broken.1
broken.1: fallo del analizador
ANÁLISIS WHATIS
mandb (el cual emplea el mismo código que lexgrog) analiza la sección NOMBRE situada en la parte superior de cada página de manual buscando nombres y descripciones de las características documentadas en cada una. Aunque el analizador es bastante tolerante, como tiene que hacer frente a un gran número de formatos diferentes que históricamente se han empleado, algunas veces puede fallar al extraer la información requerida.
Al utilizar el conjunto de macros tradicional de man, una sección correcta NOMBRE tiene el siguiente aspecto:
.SH NAME
foo \- program to do something
Algunos paginadores del manual requieren que la ’\-’ esté exactamente como se muestra; mandb es más tolerante; sin embargo, por compatibilidad con otros sistemas, no es buena idea retener la barra invertida.
En el lado izquierdo puede haber varios nombres separados por comas. Los nombres que contengan espacios en blanco serán ignorados para evitar comportamiento patológico en ciertas secciones NOMBRE mal formadas. El texto en el lado derecho tiene formato libre y puede ocupar varias líneas. Si se están documentando diversas características con descripciones diferentes en la misma página de manual, en tal caso se utiliza la siguiente forma:
.SH NAME
foo, bar \- programs to do something
.br
baz \- program to do nothing
(A macro which starts a new paragraph, like .PP, may be used instead of the break macro .br.)
Cuando se utiliza el conjunto de macros mdoc derivadas de BSD, una sección NOMBRE correcta tiene el siguiente aspecto:
.Sh NAME
.Nm foo
.Nd program to do something
Hay distintas razones por las que el análisis de whatis suele fallar. A veces los autores de las páginas de manual sustituyen ’.SH NOMBRE’ por ’.SH MIPROGRAMA’, y entonces mandb no puede encontrar la sección desde la cual extraer la información que necesita. A veces los autores incluyen una sección NOMBRE, pero colocan texto en formato-libre en lugar de ’name \- description’. Sin embargo, debería aceptarse cualquier sintaxis parecida a la de arriba.
VÉASE TAMBIÉN
apropos(1), man(1), whatis(1), mandb(8)
ANOTACIONES
lexgrog trata de analizar archivos que contienen peticiones .so, pero solo podrá hacerlo correctamente si los archivos están debidamente instalados en la jerarquía de una página de manual.
AUTOR
El código utilizado por lexgrog para analizar páginas man fue escrito por:
Wilf.
(G.Wilford [AT] ee.uk).
Fabrizio Polacco (fpolacco [AT] debian.org).
Colin Watson (cjwatson [AT] debian.org).
Colin Watson escribió la actual encarnación del frontal de la línea de órdenes, así como esta página man.
DEFECTOS
https://gitlab.com/man-db/man-db/-/issues
https://savannah.nongnu.org/bugs/?group=man-db