Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

¿Cómo pasar a minúsculas una cadena de texto en un script de Bash?

15 de febrero de 2011

¿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

#1

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