você está aqui: Home  → Arquivo de Mensagens

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 irá me dar um trabalho enorme.

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


 

 

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Opinião dos Leitores

erasmo
01 Jul 2013, 15:49
Rubens,

me ajudou muito.

obrigado,
erasmo
*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