Re: egrep en castellano vs egrep en inglés
El día 29 de septiembre de 2015, 18:09, Gonzalo Rivero
<fishfromsalta@gmail.com> escribió:
(reenvío, se lo zampó mi filtro. Gente, cuidad dónde mandáis los
mensajes...)
> El día 29 de septiembre de 2015, 12:21, Camaleón <noelamac@gmail.com>
> escribió:
>> El Tue, 29 Sep 2015 12:17:44 -0300, Gonzalo Rivero escribió:
>>
>>> El mar, 29-09-2015 a las 13:47 +0000, Camaleón escribió:
>>>> El Tue, 29 Sep 2015 09:04:37 -0300, Gonzalo Rivero escribió:
>>>>
>>>> (...)
>>>>
>>>> > si lo ejecuto normalmente:
>>>> > $ egrep -i "(FULANO|MENGANO).*SUTANO" passwd Coincidencia en el
>>>> > fichero binario passwd
>>>>
>>>> ¿Fichero "binario"? >:-?
>>>>
>>>> file passwd
>>>> cat passwd | egrep -i "(FULANO|MENGANO).*SUTANO"
> Coincidencia en el fichero binario (entrada estándar)
Vale, este dice lo mismo. Pensaba que pasándolo por el turmix ("cat")
destilaría el contenido y le llegaría al grep filtrado pero ya veo que
no. Quizá un "cat -v passwd..." también hubiera resultado.
>>>> egrep -ia "(FULANO|MENGANO).*SUTANO" passwd
> este hizo la magia: procesar como si fuera (y lo es coñe!) un archivo
> de texto.
Ah, vaya... interesante.
> Ahora me falta descubrir porque cuando ejecuto grep con mi locale
> (es_AR) cree que es un archivo binario y porqué cuando uso el básico
> (C) lo entiende como corresponde.
Sí, es bien curioso dado que se trata del mismo archivo.
> File dice que el archivo de claves es ISO-8859 text; mientras que el
> listado de nombres y apellidos con que estoy buscando los usuarios (en
> realidad hago grep -f ), file dice que es UTF-8 Unicode text. Pero la
> entrada manual, o sea probando una sola cadena, file opina que es
> ascii:
> echo "(FULANO|MENGANO).*SUTANO"|file -
> /dev/stdin: ASCII text
>
> creo que en castellano se hace bolas con las distintas codificaciones
Buscando en Google he visto que esta "característica" está documentada en
la versión de grep que tienes (2.21), vamos, que ni bug ni fantasmas ni
gaitas... misterio resuelto:
http://savannah.gnu.org/forum/forum.php?forum_id=8152
If a file contains data improperly encoded for the current locale,
and this is discovered before any of the file's contents are output,
grep now treats the file as binary.
Saludos,
--
Camaleón
Reply to: