Página Man com decorações de texto preservadas, texto proporcional e código de largura fixa

5

Como posso obter o conteúdo de uma página man sem o texto ser enrolado na coluna 80 ou mais? Eu prefiro que a saída tenha formatação adequada, linha em negrito, sublinhado, fonte de largura fixa para exemplos, etc.

No entanto, todos os utilitários de linha de comando e os recursos da página de manual on-line fornecem wrap ( link ) ou não formatados ( man mmap | col -bx > mmap.txt ) ) ou versões incorretamente formatadas ( man -t mmap | ps2pdf - mmap.pdf ).

Como posso obter o texto não formatado corretamente formatado de uma página do manual para ser usado para impressão de livreto adicional?

    
por mbaitoff 30.01.2014 / 05:48

3 respostas

5

Você não especificou o formato de saída desejado, mas pelas coisas que tentou, parece que você não é exigente. Isso produzirá html corretamente formatado e não-preenchido, mas ele precisa ser executado no arquivo de página man real.

Então, primeiro localize o arquivo de manual no qual você está interessado:

$ man -w mmap
/usr/share/man/man2/mmap.2.gz

Eles executam man2html :

man2html /usr/share/man/man2/mmap2.2.gz > mmap.html

Ou simplesmente

zcat $(man -w mmap) | man2html > mmap.html

A saída é assim:

man2html estava disponível no repositório Debian, eu instalei com sudo apt-get install man2html .

Depois de tê-lo em HTML, você pode traduzir para outros formatos com bastante facilidade: Na verdade, eles não funcionarão, eles envolverão a linha automaticamente novamente.

man2html /usr/share/man/man1/grep.1.gz | html2ps > grep.ps
man2html /usr/share/man/man1/grep.1.gz | html2ps | ps2pdf14 - grep.man.pdf

'

    
por 30.01.2014 / 06:50
2

Você pode pular a instalação de man2html e usar groff para fazer a conversão em HTML também.

$ man -w netstat | xargs zcat | groff -T html -man > netstat.html

Em seguida, use elinks ou algum navegador da Web para visualizá-los.

$ elinks netstat.html

VocêpodeignorarageraçãodeumarquivointeiroseusarlynxcomoseunavegadordaWeb,quepossuiumrecurso-stdinparaleituraemHTML.

$man-wnetstat|xargszcat|groff-Thtml-man|lynx-stdin

    
por 30.01.2014 / 07:17
2

Dependendo de como você deseja que a saída seja e de qual sistema você está, veja algumas coisas que podem ser úteis.

  1. Definir o comprimento da linha por meio da macro .ll
  2. Configurando justificação à esquerda em vez de justificação de bloco .ad l
  3. Usando man -Tutf8 para informar man para a formatação do terminal de saída, mesmo ao redirecionar o stdout.

No meu sistema, posso conseguir isso modificando /usr/share/groff/current/tmac/tty.tmac e executando man -Tutf8 .

Mas você disse que queria texto em uma fonte proporcional, mas codifique em uma fonte de largura fixa. A maioria dos terminais não tem a capacidade de alternar entre fontes diferentes, e as páginas man não carregam nenhuma marcação para dizer o que é código e qual linguagem humana. Então, sua melhor aposta é encontrar um documento em outro formato para exibição em um navegador ou visualizador gráfico.

Provavelmente, os dois melhores lugares para essa documentação são

Mas há outros, dependendo do comando ou da função que você está tentando pesquisar.

    
por 30.01.2014 / 07:23