Sed - Inserir um espaço entra cada letra

Sed é um editor utilizado para executar transformações básicas de texto em um fluxo de entrada no Linux. Existem inúmeras funções para esse editor, mas, neste artigo, aprenda a inserir um espaço entre cada letra.

$ echo -e "bom dia a vida \net bom dia para ti " | sed 's/./& /g' 
b o n j o u r l a v i e
e b o m d i a p a r a t i

O inconveniente é que o espaço natural entre cada palavra é dobrado. Para resolver este pequeno inconveniente basta adicionar:

$ echo -e "bom dia a vida\net bom dia para ti " | sed 's/./& /g;s/  / /g' 
b o m d i a p a r a a v i d a
e b o m p a r a t i
$

Eis aqui mais uma variante. Em relação à precedente a substituição e faz de um só golpe de s///

$ echo -e "bom dia para a vida\net bom dia para ti " | sed -r 's/([^ ])/\1 /g' 
b o m d i a p a r a a v i d a
e b o m p a r a t i

Para não utilizar a opção -r, pode-se escrever

 sed 's/\([^ ]\)/\1 /g'

Classe de caracteres complementados [^...]

[^...] - é uma classe de caracteres complementados que significa "reconhece um caractere não enumerado " e não "não reconhecer um caractere enumerado".
Neste caso, pode-se traduzir para "reconhecer um caractere que não tem espaço".

Foto: © Michael Dziedzic - Unsplash

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.
Este documento, intitulado 'Sed - Inserir um espaço entra cada letra ', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.

Assine nossa newsletter!

Assine nossa newsletter!