table of contents
LEXGROG(1) | Utilitários de paginação de manual | LEXGROG(1) |
NOME¶
lexgrog - analisa informações do cabeçalho em páginas man
SINOPSE¶
lexgrog [-m|-c] [-dfw?V] [-E codificação] arquivo ...
DESCRIÇÃO¶
lexgrog é uma implementação do utilitário “groff guess” tradicional em lex. Ele lê uma lista de arquivos em sua linha de comando como arquivos-fonte de páginas man ou páginas “cat” pré-formatadas, e exibe os respectivos nomes e descrições como usado por apropos e whatis. A lista de filtros de pré-processamento são exigidos pela página man antes dela ser passada para nroff ou troff, ou ambos.
Se sua entrada estiver mal formatada, lexgrog irá imprimir “parse failed”; isso pode ser útil para programas externos que precisam verificar se as páginas man estão corretas. Se um dos arquivos de entrada do lexgrog for “-”, ele lerá a partir da entrada padrão; se algum arquivo de entrada estiver comprimido, uma versão descomprimida será lida automaticamente.
OPÇÕES¶
- -d, --debug
- Emite mensagens de depuração.
- -m, --man
- Analisa a entrada como arquivos-fontes de página man. Esse é o padrão se não forem fornecidas as opções --man ou --cat.
- -c, --cat
- Analisa a entrada como páginas man pré-formatadas (“páginas cat”). As opções --man e --cat não podem ser fornecidas simultaneamente.
- -w, --whatis
- Exibe o nome da descrição a partir do cabeçalho da página man, como usado por apropos e whatis. Esse é o padrão se não forem fornecidas as opções --apropos ou --whatis.
- -f, --filters
- Exibe a lista de filtros necessários para pré-processar a página man antes de formatar com nroff ou troff.
- -E codificação, --encoding codificação
- Sobrescreve o conjunto de caracteres adivinhado para a página usando codificação.
- -?, --help
- Imprime uma mensagem de ajuda e sai.
- --usage
- Imprime uma mensagem curta e sai.
- -V, --version
- Exibe informação da versão.
STATUS DE SAÍDA¶
- 0
- Execução com sucesso do programa.
- 1
- Erro de uso.
- 2
- lexgrog não conseguiu analisar um ou mais arquivos de entrada.
EXEMPLOS¶
$ lexgrog man.1
man.1: "man - uma interface para os manuais de referência do sistema"
$ lexgrog -fw man.1
man.1 (t): "man - uma interface para os manuais de referência do sistema"
$ lexgrog -c whatis.cat1
whatis.cat1: "whatis - exibe descrições de uma linha de páginas de manual"
$ lexgrog broken.1
broken.1: parse failed
ANÁLISE COM WHATIS¶
mandb (que usa o mesmo código que o lexgrog) analisa a seção NAME no topo de cada página de manual procurando por nomes e descrições de recursos documentados em cada um. Enquanto o analisador é bem tolerante, já que ele tem que lidar com uma gama de formas diferentes que já se usou em algum momento, ele pode falhar em alguns casos em extrair as informações necessárias.
Ao usar o conjunto tradicional de macros do man, uma seção NAME correta se parece com algo como isto:
.SH NAME foo \- programa para fazer alguma coisa
Alguns paginadores de manual exigem que ‘\-’ seja exatamente como mostrado; mandb é mais tolerante, mas, para que haja compatibilidade com outros sistemas, ainda é uma boa ideia reter a barra invertida.
No lado esquerdo, pode haver vários nomes, separados por vírgulas. Nomes contendo espaços em branco serão ignorados para evitar comportamento patológico em certas seções NAME malformados. O texto no lado direito é de formato livre, e pode se estendido por múltiplas linhas. Se vários recursos com descrições diferentes estão sendo documentados na mesma página de manual, então a seguinte forma é usado:
.SH NAME foo, bar \- programas para fazer alguma coisa .br baz \- programas para fazer nada
(Uma macro que se inicia com um novo parágrafo, como a .PP, pode ser usada em vez da macro de quebra de linha .br.)
Ao usar o conjunto de macros do mdoc, que é derivado do BSD, uma seção NAME correta se parece com algo como isto:
.Sh NAME .Nm foo .Nd programa para fazer alguma coisa
Há vários motivos comuns pelos quais a análise com whatis falha. Alguns autores de páginas de manual substituem ‘.SH NAME’ com ‘.SH MEUPROGRAMA’, e, então, mandb não é capaz de localizar a seção a partir da qual se extrairia a informação que ele precisa. Alguns autores incluem uma seção NAME, mas colocam um texto de forma livre ali em vez de colocar em ‘nome \- descrição’. Porém, qualquer sintaxe que se assemelhe ao mencionado acima deve ser aceito.
VEJA TAMBÉM¶
NOTAS¶
lexgrog tenta analisar arquivos contendo requisições .so, mas só será capaz de fazê-lo de forma correta se os arquivos estiverem instalados em uma hierarquia de páginas de manual.
AUTOR¶
O código usado por lexgrog para fazer uma varredura de páginas de manual foi escrito por:
Wilf. (G.Wilford@ee.surrey.ac.uk). Fabrizio Polacco (fpolacco@debian.org). Colin Watson (cjwatson@debian.org).
Colin Watson escreveu a versão atual do front-end da linha de comando, assim como essa página de manual.
PROBLEMAS¶
https://gitlab.com/man-db/man-db/-/issues
https://savannah.nongnu.org/bugs/?group=man-db
2023-01-08 | 2.11.2 |