[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problemas con locales, ls y expresiones regulares



On Sat, 26 Jun 2004, Daniel Peña wrote:

> Antes de nada indicar que utilizo Debian Woody (stable).
> Al hacer un "ls" con una simple expresión regular "ls [A-Z][A-Z]*"
> (trato de listar los ficheros cuyos nombres comiencen con 2 letras
> mayúsculas), inexplicablemete me lista todo el directorio y todos los
> que cuelgan de él sin tener en cuenta la expresión regular, como si
> hubiese hecho un "ls *".
>
> Tras horas de pruebas, se me enciende la bombilla: ¿No será algo
> relaccionado con los locales? Tengo instalado el paquete "user-es" para
> "castellanizar" Debian, y las variables de entorno LANG, LANGUAGE,
> LC_ALL, LC_MESSAGES con el valor de "es_ES" (con los locales es_ES y
> es_ES@euro generados). Con esto obtengo los mensajes del sistema y las
> páginas "man" en castellano.
>
> Tras hacer (en bash) "export LC_ALL=C" el "ls [A-Z][A-Z]*" funciona como
> supongo que debe hacerlo, pero pierdo los mensajes del sistema y las
> páginas "man" en castellano. Ahora están en inglés.
> Tras hacer pruebas haciendo combinaciones entre todas las variables LC_*
> (LC_CTYPE, LC_COLLATE, etc...) y los valores "C" y "es_ES" e incluso
> "none", veo ejecutando el programa "locale" que da igual el valor que
> tengan las variables LC_* mediante "export", pues el valor que se asigne
> a LC_ALL, es el valor que toman el resto de LC_*.
>
> Ahora la pregunta:
> ¿Cómo podría obtener mensajes y páginas "man" en castellano y que el
> "ls" funcione correctamente con esa expresión regular?

Prueba esto:

* No le des ningún valor a la variable LC_ALL. En ninguna parte.
* export LANG=es_ES
* export LC_COLLATE=C

Así todas las variables valdrán "es_ES" menos LC_COLLATE que valdrá "C"
y que por lo que parece, es la variable que determina cuál será la
"traducción" de [A-Z].



Reply to: