Sed - Insérer un espace entre chaque lettre

Dernière mise à jour le 18 novembre 2009 à 19:15 par marlalapocket
Publié par jipicy

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".
Meilleures réponses pour « Sed Insérer un espace entre chaque lettre » dans :
Sed - Insertion de texte VoirInsérer du texte dans un fichier Introduction Syntaxe Ajout de texte Insérer une ligne avec "i" Ajouter une ligne avec "a" Échanger une ligne avec "c" Introduction Il est parfois utile de pouvoir insérer du texte en en-tête d'un ou...
Sed - Insérer des espacements VoirEspacement dans un fichier * Ajouter une ligne blanche après chaque phrase (ponctuée par un retour chariot) : sed G fichier.txt Ajouter une ligne blanche après chaque phrase (ponctuée par un retour chariot), sans tenir compte des lignes...
Sed - Mettre la première lettre d'un mot en majuscule VoirCapitaliser la 1ère lettre d'un mot (ou d'une phrase) Gsed 4.0 et supérieur sed 's/^./\u&/'Exemples :$ echo "bonjour la vie" | sed 's/^./\u&/' Bonjour la vie $ echo -e "bonjour la vie\net bonjour à toi" | sed 's/^./\u&/' Bonjour la vie Et...
LaTeX - Insertion d'images VoirStyle LaTeX permet d'insérer des images de différents formats. Le plus simple est d'insérer des fichiers de type eps (Encapsuled Postscript) : Il suffit d'insérer dans le préambule la ligne suivante : \usepackage{graphicx} Puis d'insérer...
Les espaces de nom XML VoirIntroduction aux espaces de noms XML définit un système permettant de créer des balises modulaires, c'est-à-dire pouvoir donner la possibilité d'utiliser des balises provenant de différents langages à balise au sein d'un même document grâce à la...
Collection CommentÇaMarche.net