¿A grep le importa la extensión .dat?

¿A grep le importa la extensión .dat?

GNU grep 2.6.3
Linux versión 2.6.32-220.el6.i686 (Red Hat 4.4.6-3)

Tengo un archivo .dat en el que grep no funciona. Es texto plano y puede ser leído por todos los comandos de salida estándar, por ejemplo, "menos", "gato", etc., por lo que sé lo que contiene.

Si busco una frase que sé absolutamente que está ahí, no regresa, como si no hubiera encontrado nada.

Lo extraño es que si simplemente le cambio el nombre con una extensión diferente, como file.dat.txt, ahora grep funcionará bien. Si le cambio el nombre a file.dat, una vez más grep no encontrará nada.

También creé un archivo .dat simplemente con el comando echo:
echo "grep this" > test.dat
Y aún así, grep "grep" test.datno devolví nada.
Pero después mv test.dat test.dat.txt, ahora grep "grep" test.dat.txtfuncionó bien.

Solución bastante sencilla (cambiar el nombre del archivo), pero pensé que era un comportamiento extraño.

Respuesta1

No es un comportamiento normal y no puedo reproducir el problema en mis máquinas ubuntu ni centos.

Es muy probable que GREP_OPTIONSesté configurado en su bashrc (o bash_profile, perfil, etc.) para ignorar *.dat.

Para verificar esto, simplemente imprima la variable env:

 echo $GREP_OPTIONS

En algún lugar de la salida deberías ver-exclude=*.dat

EDITAR: Como lo sugirió Fox en los comentarios, también podría ser un alias, luego command -v grepdebería mostrarse -exclude=*.daten algún lugar de su salida.

información relacionada