¿Es posible convertir una cadena de texto en minúsculas dentro de un script de shell? Si por ejemplo tengo la variable $a = "Hola a Todos"
, quiero convertir esa variable a $a = "hola a todos"
.
Estás leyendo una traducción autorizada de la pregunta
Converting string to lower case in Bash shell scripting
planteada por assassin
en StackOverflow.
Respuestas
Aunque existen muchas formas de hacerlo, la única realmente recomendada es usar el comando tr
de UNIX:
$ echo $a | tr '[:upper:]' '[:lower:]' hola a todos
La ventaja de usar este comando es que se tiene en cuenta el idioma actual de la consola, por lo que los caracteres con acentos y los caracteres especiales de cada idioma (como por ejemplo la ñ
) se transforman correctamente.
Si no te importa que los acentos y los caracteres especiales se transformen bien, existen muchas alternativas al comando anterior:
Con awk
:
$ echo $a | awk '{print tolower($0)}' hola a todos
Con bash 4.0 o superior:
$ echo ${a,,} hola a todos
@librosweb
7 octubre 2014, 10:59