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'
[^...] - é 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