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,
[...]
Convenientemente, o nl
1 não numera linhas
em branco por defeito.
E se quisermos numerar apenas a cada cinco linhas? Então eliminamos os números que não são múltiplos de cinco. Podemos encomendar este trabalho ao Perl2:
nl O-Pirata_Gonçalves-Dias.txt | perl -pe 's/(^ *[0-9]*[12346789]\b)/" " x length($1)/gei'
Este é o resultado:
Nas asas breves do tempo
Um ano e outro passou,
E Lia sempre formosa
Novos amores tomou.
5 Novo amante mão de esposo,
De mimos cheia, lh'of'rece;
E bela, apesar de ingrata,
Do que a amou Lia se esquece.
Do que a amou que longe pára,
10 Do que a amou, que pensa nela,
[...]
O que a expressão regular anterior faz é substituir os números que não
são múltiplos de cinco no início da linha por caracteres em branco. Uma
vez que o nl
introduz vários caracteres em branco no início da linha,
utilizamos ^ *
. Para evitar um desajuste de caracteres, calculamos o
comprimento da seleção, que substituímos por espaços (" " x length($1)
).
Pode-se fazer isso de forma mais simples com o sed
, mas haveria um
ligeiro desajuste de caracteres; porém, uma vez que nl
usa tabulações
por defeito depois dos números, não é perceptível.
nl O-Pirata_Gonçalves-Dias.txt | sed 's/^ *[[:digit:]]*[1|2|3|4|6|7|8|9]\b/ /'
Comentários