De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
SED - Conversão de linhas em parágrafos
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 24 de Setembro de 2004
Eu frequentemente crio meus documentos com o editor vi
.
O que eu escrevo geralmente se parece com o bloco abaixo:
Para receber diariamente em sua caixa postal as mensagens\n
veiculadas na lista Dicas-L, digite na caixa de texto abaixo\n
o seu endereço eletrônico.\n
O \n
indica quebra de linha e não aparece no texto original. Ou seja,
eu geralmente divido os parágrafos inserindo linhas em branco entre um
parágrafo e o outro.
Se eu quero levar este texto para um editor de textos como o
OpenOffice eu tenho um problema, pois o
OpenOffice irá interpretar cada linha como um parágrafo separado, o que me
dará um trabalho enorme para consertar.
Pesquisando por uma solução para este problema, eu encontrei o
The SED FAQ
que oferece uma solução muito interessante, que inclusive é uma das seções
do documento.
A solução está no item 4.2.7 do FAQ
e consiste no seguinte script:
# sed script to change all paragraphs to long lines
/./{H; $!d;} # Put each paragraph into hold space
x; # Swap hold space and pattern space
s/^\(\n\)\(..*\)$/\2\1/; # Move leading \n to end of PatSpace
s/\n\(.\)/ \1/g; # Replace all other \n with 1 space
# Uncomment the following line to remove excess blank lines:
# /./!d;
#---end of sed script--
Para entender o que cada comando representa exige um pouco de conhecimento
de SED, mas na verdade eu já testei o script e funciona perfeitamente.
Basta criar um arquivo, digamos paragrafos.sed
e executá-lo como abaixo:
$ sed -f paragrafos.sed capitulo1.txt > Capitulo1.txt