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

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: