Sed - Colocar a primeira letra de cada palavra em maiúscula

Faça uma pergunta

Eis como proceder :
  • Método 1
    • sed -r 's/(^.| .)/\U&/g'
  • Método 2
    • sed 's/^.\| [a-z]/\U&/g'
  • Método 3
    • sed -r 's/\<./\U&/g'

Exemplos :
$ echo -e "bom dia vida." | sed -r 's/(^.| .)/\U&/g' 
Bom dia vida. 

$ echo -e " Bom dia vida \net bom dia para ti" | sed -r 's/(^.| .)/\U&/g' 
ou
$ echo -e " Bom dia vida \net bom dia para ti" | sed -r 's/(\b.)/\U&/g' 
Bom dia vida Et Bonjour À Toi 

$ echo -e " Bom dia vida." | sed 's/^.\| [a-z]/\U&/g' 
Bom dia vida. 

$ echo -e " Bom dia vida \net bom dia para ti" | sed 's/^.\| [a-z]/\U&/g' 
Bom dia vida 
E Bom dia PARA ti 

$ 


Nota : - Os 2 primeiros métodos só funcionam se tiver um espaço entre as palavras.
Eis a melhoria do 1° método para que funcione sm considerar o n° de espaços entre as palavras.
sed -r 's/(^.|[ ]+.)/\U&/g'


Tradução feita por Ana Spadari
Jean-François Pillou

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 e diretor digital do Grupo Figaro. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.

Mais informações sobre a equipe do CCM