Numerar linhas de poema, a cada 5 versos e a cada verso

Raramente os versos dos poemas que encontramos na Internet são numerados. A numeração não é necessária para a leitura, mas é muito útil para a análise e comentário de um poema longo. Neste artigo, mostro como numerar um ficheiro de texto (no qual devemos ter colado o poema copiado da Internet).

Como exemplo de ficheiro utilizo o poema O pirata, de Gonçalves Dias. Se quisermos numerar todas as suas linhas, basta executar o seguinte comando:

$ nl O-Pirata_Gonçalves-Dias.txt

Aqui esta o resultado:

     1  Nas asas breves do tempo
     2  Um ano e outro passou,
     3  E Lia sempre formosa
     4  Novos amores tomou.

     5  Novo amante mão de esposo,
     6  De mimos cheia, lh'of'rece;
     7  E bela, apesar de ingrata,
     8  Do que a amou Lia se esquece.

     9  Do que a amou que longe pára,
     [...]
Continúa leyendo Numerar linhas de poema, a cada 5 versos e a cada verso

Remover acentos com o sed ou o iconv (GNU/Linux)

Por vezes é útil remover acentos de um texto ou de palavras. Para tal podemos utilizar o sed, que normalmente já está instalado no GNU/Linux.

Basta criar um ficheiro como o seguinte...

#!/bin/sed -f

# Este programa remove os acentos, funciona tanto para espanhol como para
# português.
#
# Exemplo de utilização
# $ echo 'Eles também têm tempo.' | ./remover-acentos.sed

# Em maiúsculas
s/Á/A/g
s/É/E/g
s/Í/I/g
s/Ó/O/g
s/Ú/U/g

s/À/A/g

s/Ã/A/g
s/Õ/O/g

s/Â/A/g
s/Ê/E/g
s/Ô/O/g


# Em minúsculas
s/á/a/g
s/é/e/g
s/í/i/g
s/ó/o/g
s/ú/u/g

s/à/a/g

s/ã/a/g
s/õ/o/g

s/â/a/g
s/ê/e/g
s/ô/o/g

Dar-lhe permissão para executar (sudo chmod u+x remover-acentos.sed) e, depois, executar algo como echo 'Eles também têm tempo' | ./remover-acentos.sed, que retirará os acentos da frase, deixando-a assim: «Eles tambem tem tempo». Podemos passar qualquer texto para o programa através de um tubo. Assim, cat texto.txt | ./remover-acentos.sed removeria os acentos do texto no ficheiro texto.txt.

Outra opção é converter o texto para ASCII por transliteração com o programa iconv, que também está normalmente instalado no GNU/Linux. Assim, para converter um texto para ASCII, simplesmente tens de executar algo como iconv -f utf-8 -t ascii//translit texto.txt ou echo 'Não é uma árvore' | iconv -f utf-8 -t ascii//translit.