0
Merci

Quelques mots de remerciements seront grandement appréciés.

Sed - Insérer un espace entre chaque lettre



Insérer un espace entre chaque lettre


$ echo -e "bonjour la vie\net bonjour à toi" | sed 's/./& /g'
b o n j o u r   l a   v i e
e t   b o n j o u r   à   t o i
L'inconvénient c'est que l'espace naturel entre chaque mot est doublé. Pour pallier à ce petit désagrément il suffit d'ajouter :
$ echo -e "bonjour la vie\net bonjour à toi" | sed 's/./& /g;s/  / /g'
b o n j o u r  l a  v i e
e t  b o n j o u r  à  t o i
$  

Voici encore une variante. Par rapport à la précédente le remplacement et fait dans un seul coup de s///
$ echo -e "bonjour la vie\net bonjour à toi" | sed -r 's/([^ ])/\1 /g'
b o n j o u r  l a  v i e
e t  b o n j o u r  à  t o i

Pour ne pas utiliser l'option -r on peut écrire
 sed 's/\([^ ]\)/\1 /g'

Classe de caractères complémentée [^...]


[^...] - est une classe de caractères complémentée qui signifie "reconnaître un caractère non énuméré" et non "ne pas reconnaître un caractère énuméré".
Dans notre cas on peut traduire "reconnaître un caractère qui n'est pas espace".
0
Merci

Quelques mots de remerciements seront grandement appréciés.

Cet article est régulièrement mis à jour par des experts sous la
direction de Jean-François Pillou, fondateur de CommentCaMarche
et directeur délégué au développement numérique du groupe Figaro.

Publié par . Dernière mise à jour le par christelle.b.

Ce document intitulé «  Sed - Insérer un espace entre chaque lettre  » issu de CommentCaMarche (https://www.commentcamarche.net/) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

0 Commentaire