SED - texto para maiúsculas, minúsculas, pascal case e camel case
Dando sequência a série de dicas sobre o sed, hoje veremos como converter texto para maiúsculas, minúsculas, pascal case e camel case.
Converter em maiúsculas
Para converter todo o texto para letras maiúsculas (uppercase), use a seguinte sintaxe:
echo viva o linux | sed 's/^.*$/\U&/' VIVA O LINUX
Onde:
s = substitua
/^.*$/ = tudo o que estiver entre o início e o fim do texto
\U = a partir daqui todas as letras serão UPPERCASE
& = todo o texto em que a primeira expressão combinou (^.*$)
Converter em minúsculas
A conversão para minúsculas segue a mesma linha, a única coisa que muda é o \U de UPPERCASE que vira \L de LOWERCASE:
echo VIVA O LINUX | sed 's/^.*$/\L&/' viva o linux
Pascal Case
Pascal Case significa uma frase composta por todas palavras iniciando por uma letra maiúscula. Sendo assim vamos começar convertendo todo o texto para minúsculas e em seguida converter cada letra inicial para maiúscula:
echo vIVa O LInux | sed -E 's/^.*$/\L&/ ; s/\w+/\u&/g' Viva O Linux
As novidades aqui ficam por conta de:
\w+ = combina com cada palavra do texto
\u = converte apenas a próxima letra para maiúsculo
g = global, necessário para processar todas as combinações
Camel Case
Camel Case se diferencia do Pascal Case na primeira letra da frase, que sempre começa por letra minúscula. Também irei remover os espaços em branco do texto:
echo vIVa O LInux | sed -E 's/^.*$/\L&/ ; s/\w+/\u&/2g ; s/\s//g' vivaOLinux
As novidades aqui ficam por conta de:
s/\w+/\u&/2g - adicionei apenas o número 2 ali, onde 2g significa que só irei proceder com o replace a partir da segunda ocorrência do padrão
s/\s//g - e aqui removo todos os espaços em branco