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

Novembro 2016


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

Veja também :
Este documento, intitulado « Sed - Colocar a primeira letra de cada palavra em maiúscula  »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.