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
apropos(1), man(1), whatis(1), mandb(8)

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