
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.dat
no devolví nada.
Pero después mv test.dat test.dat.txt
, ahora grep "grep" test.dat.txt
funcionó 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_OPTIONS
esté 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 grep
debería mostrarse -exclude=*.dat
en algún lugar de su salida.