Sed - Mettre la première lettre de chaque mot en majuscule

Dernière mise à jour le 4 novembre 2007 à 23:49 par lami20j
Publié par jipicy

Capitaliser la 1ère lettre de chaque mot


Voici deux façons de procéder :
  • Méthode 1
    • sed -r 's/(^.| .)/\U&/g'
  • Méthode 2
    • sed 's/^.\| [a-z]/\U&/g'
  • Méthode 3
    • sed -r 's/\<./\U&/g'

Exemples :
$ echo -e "bonjour la vie." | sed -r 's/(^.| .)/\U&/g'
Bonjour La Vie.

$ echo -e "bonjour la vie\net bonjour à toi" | sed -r 's/(^.| .)/\U&/g'
ou
$ echo -e "bonjour la vie\net bonjour à toi" | sed -r 's/(\b.)/\U&/g'
Bonjour La Vie
Et Bonjour À Toi

$ echo -e "bonjour la vie." | sed 's/^.\| [a-z]/\U&/g'
Bonjour La Vie.

$ echo -e "bonjour la vie\net bonjour à toi" | sed 's/^.\| [a-z]/\U&/g'
Bonjour La Vie
Et Bonjour À Toi

$ 


Note : - les 2 premières méthodes ne fonctionnent que si et seulement il y un seul espace entre les mots.
Voici l'amélioration de la 1ère méthode pour que ça marche sans tenir compte de nombre d'espaces entre les mots.
sed -r 's/(^.|[ ]+.)/\U&/g'
Meilleures réponses pour « Sed Mettre la première lettre de chaque mot en majuscule » dans :
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...
Les classes de style (CSS) VoirLes classes et les ID Les classes Il peut s'avérer intéressant d'affecter des styles différents à des mêmes balises. Pour cela les spécifications CSS ont introduit le concept de classe. La définition des classes est aussi simple que celles des...