você está aqui: Home  → Arquivo de Mensagens

lesspipe, o less mais lindo!

Colaboração: Cesar Brod

Data de Publicação: 18 de janeiro de 2013

Não sei quanto a você, mas eu ainda uso muito o terminal do Linux em meu dia-a-dia. Talvez seja porque eu já esteja meio velhinho...

Um dos meus comandos preferidos é o less. Com ele eu consigo, rapidamente, olhar o início de um arquivo e, se for o caso, seguir vendo as demais páginas, chamar diretamente o melhor editor de textos do mundo (o vi) e uma série de outras coisinhas.

O less pode usar formatadores de entrada, permitindo que você o instrua a colorizar a sintaxe de arquivos, descomprimir arquivos compactados e até ler documentos no formato .doc, .odt e muitos outros.

O melhor formatador do mundo é o lesspipe, que vem instalado em algumas distribuições Linux junto com o pacote less, mas na maioria das vezes ele não funciona direito. Um teste rápido para saber se o seu lesspipe está funcionando é executar o seguinte comando:

  less -r arquivo.html:.

Claro, substitua arquivo.html por um arquivo no formato html que você tenha em seu computador. Se o lesspipe está instalado e funcionando, você pode parar de ler o artigo aqui e tentar os outros exemplos que forneço ao final dele.

Caso contrário, não se acanhe! Visite o site do lesspipe, baixe e instale a mais recente versão do arquivo completo:

http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html

Tá com preguiça? Baixa deste link, descompacta e bota o bixo pra rodar com os seguintes comandos (estou assumindo que você está usando o Debian ou um de seus derivados, como o Ubuntu ou o Linux Mint, e que é o usuário root):

  tar -xzvf lesspipe.tar.gz
  cd lesspipe-1.80/

Observação: a versão de hoje é a 1.80. Pode ser que quando você estiver lendo este artigo ela tenha mudado. Certifique-se de modificar o comando apropriadamente.

  ./configure

O configurador irá fazer algumas perguntas. Abaixo algumas das minhas respostas:

  Activate syntax highlighting code [y/N] ? y
  interpret html, ps and other mostly ASCII files only if the
  ENV variable LESS_ADVANCED_PREPROCESSOR is set [y/N] ? N

Claro que eu quero destaque de sintaxe nos códigos! E também quero que o less interprete a maior parte possível de arquivos independente da variável de ambiente LESS_ADVANCED_PREPROCESSOR.

Pode ser também que o configurador mostre que algum utilitário ou biblioteca estão faltando:

  checking lsbom...not found
  Include code anyway [y/N or < full_path_to_lsbom>] ? 

Você pode dar um ctrl+c para interromper o configurador e instalar o componente faltante. Aproveite a ocasião para saber mais sobre o que você está incluindo em seu sistema. Este lsbom, por exemplo, eu nunca consegui entender bem para o que serve, sempre respondi esta pergunta com N e ele nunca me fez falta. Alguém tem alguma dica? Já outros utilitários, para mim, são importantes e sempre interrompo o configurador para instalá-los (claro que, na maioria dos casos, eles já estão previamente instalados em meu sistema). Abaixo alguns deles:

bzip2, lzip, lzma, xz, unzip, unrar, 7za, 7zr, bsd_cpio
permitem a leitura de arquivos compactados
rpm2cpio, rpmunpack, rpm
manipuladores de arquivos nos formatos rpm (pacotes compactados para instalação em distribuições baseadas no RedHat Linux)
dpkg
manipuladores de arquivos nos formatos deb (pacotes compactados para instalação em distribuições baseadas no Debian)
cabextract
manipuladores de arquivos nos formatos cab (pacotes compactados para instalação em ambientes Windows)
fastjar
para que o less possa ler executáveis java .jar
isoinfo
para obter informações de imagens de disco no formato iso
dvi2tty
para a interpretação de formatos gráficos dvi
html2text
converte formato html para texto puro
lynx, w3m, elinks, links
navegadores em modo texto (você poderá dar um less em páginas web!)
mp3info2, mp3info
para a leitura de cabeçalhos de arquivos mp3
pstotext, ps2ascii, pdftohtml, pdftotext
para a leitura de arquivos nos formatos postscript e pdf
antiword, catdoc, unrtf, ppthtml, o3tohtml
para a leitura de documentos gerados pelo Word, PowerPoint, LibreOffice

O configurador do lesspipe procura por muitas opções para ajudar o less a fazer tudo, mas você deverá, em alguns casos, escolher a que melhor serve para *você*. Por exemplo, não é necessário instalar todos os navegadores em modo texto. Caso você não tenha nenhum instalado, instale um deles:

  apt-get install elinks

Teste a instalação com

  elinks http://dicas-l.com.br/brod

Use a letra q para sair do elinks.

Na maioria dos casos você conseguirá instalar o que falta com o apt-get. Abaixo uma boa tripa para resolver uma boa parte dos seus problemas (alguns pacotes farão a instalação automática de prerrequisitos).

  apt-get install curl elinks fastjar unrar mp3info html2text pstotext pdftohtml catdoc unrtf ppthtml

Em outros casos, você terá um pouco mais de trabalho. Uma pesquisa no Google irá mostrar a você que o pacote o3tohtml é parte do pacote o3read, que até o momento em que esta dica estava sendo escrita ainda não estava portado para as últimas versões do Linux Mint ou do Ubuntu. Neste caso, eu precisei baixá-lo deste link e instalá-lo manualmente com o seguinte comando:

  dpkg -i o3read_0.0.4-1_i386.deb

Mas isso foi porque eu queria muito poder dar um less em meus arquivos do LibreOffice. Minha sugestão é a de que você instale apenas aquilo que julgar absolutamente necessário e que execute o configurador sempre que sentir falta de alguma coisa.

Pronto? Volte agora ao configurador:

  ./configure

Responda às perguntas necessárias e, ao final, copie os seguintes arquivos para a pasta /usr/local/bin

  cp lesspipe.sh sxw2txt code2color tarcolor /usr/local/bin

Faça o less saber que ele deve usar o lesspipe:

   LESSOPEN="|/usr/local/bin/lesspipe.sh %s"; export LESSOPEN

Agora você pode testar e verificar os resultados com os seguintes comandos (adeque-os de acordo com o seu ambiente) - lembre-se de pressionar a barra de espaços e a letra B (ou PgDown - PgUp) para paginar e a letra q para sair do less:

  less arquivo.html 
  less arquivo.html:
  less -r arquivo.html:.
  less arquivo.odt
  less musica.mp3
  less arquivo.zip
  less imagem.png
  elinks http://cesarbrod.tumblr.com | less
  curl http://cesarbrod.tumblr.com | less -r

Lindo, né? Para usar permanentemente o lesspipe como processador de entrada para o comando less, acrescente a seguinte linha ao final de seu /etc/bash.bashrc

  LESSOPEN="|/usr/local/bin/lesspipe.sh %s"; export LESSOPEN
Segundo a mãe do Cesar Brod, ele é tarado das ideias! No portal de sua empresa um dos textos mais lidos é sua minissérie de Ficção Científica.

Cesar Brod ministra cursos in-house adequados à necessidade de sua empresa, além de atuar como coach de equipes ágeis. Visite nosso portal para saber mais ou entre em contato diretamente com o autor para mais informações.



 

 

Veja a relação completa dos artigos de Cesar Brod

Opinião dos Leitores

Cesar Brod
18 Jan 2013, 11:39
Arkanon, fantástico o teu script! Já usei-o para reinstalar o lesspipe. Obrigado também por fornecer mais informações sobre o lsbom! :-)
Arkanon
18 Jan 2013, 10:16
Minha singela contribuição para tentar facilitar a instalação mais completa possível do lesspipe: <http://goo.gl/OAb2E>
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script