dica: convertendo uppercase to lowercase
tecnologias, ubuntu Quinta-feira, Agosto 7, 2008, 10:22Supondo que você tem um arquivo chamado usuarios.txt com texto em caixa alta e quer deixá-lo em caixa baixa, vamos as diversas opções para convertê-lo
via sed
sed ‘y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/’ usuarios.txt
via tr
cat usuarios.txt | tr ‘[A-Z]‘ ‘[a-z]‘
via awk
cat usuarios.txt | awk ‘{print tolower($1)}’
No caso do SED você pode incrementá-lo ainda mais colocando ç, é, í, ú, ã etc…
E ai, quem tem mais alguma dica, seja em perl, python, ruby, php, lua, java, c, etc… que tal aumentarmos as opções ?! Comente ai!
[]’s
Guto





Agosto 7th, 2008 at 11:08
Gosto da maneira do `tr’. Me parece inteligente e ao mesmo tempo bem personalizável. Será que não funcionaria na regex do sed?
No Java é “string”.toUpperCase() e “string”.toLowerCase().
No PHP é $string = strtoupper($string) e $string = strtolower($string) .
Agosto 7th, 2008 at 11:29
$ echo “OLA ola” | dd conv=lcase 2>&-
ola ola
$ echo “OLA ola” | dd conv=ucase 2>&-
OLA OLA
Agosto 7th, 2008 at 13:29
Em Python:
normal = open(”usuarios.txt”).read()
lower_string = normal.lower()
upper_string = normal.upper()
Agosto 8th, 2008 at 7:11
Dei uma olhada no man do comando ‘tr’ e observei que ele suporta as classes POSIX tipo [[:lower:]] [[:upper:]], no entanto não obtive sucesso ao converter, seria algo relacionado com o locale?
Agosto 8th, 2008 at 9:39
Sério seria assim:
gutocarvalho@defiant:~$ cat ola.txt
OLA
OLA
gutocarvalho@defiant:~$ cat ola |tr ‘[:upper:]‘ ‘[:lower:]‘
ola
ola
ola