grep se preocupa com a extensão .dat?

grep se preocupa com a extensão .dat?

GNU grep 2.6.3
Linux versão 2.6.32-220.el6.i686 (Red Hat 4.4.6-3)

Eu tenho um arquivo .dat no qual o grep não funciona. É texto simples e pode ser lido por todos os comandos de saída padrão, por exemplo, "less", "cat", etc, então eu sei o que ele contém.

Se eu digitar uma frase que tenho certeza absoluta de que está lá, ela não retornará, como se não tivesse encontrado nada.

O estranho é que se eu simplesmente renomeá-lo com uma extensão diferente, como file.dat.txt, agora o grep funcionará perfeitamente. Se eu renomeá-lo novamente para file.dat, mais uma vez o grep não encontrará nada.

Também criei um arquivo .dat simplesmente com o comando echo:
echo "grep this" > test.dat
E mesmo assim grep "grep" test.datnão retornei nada.
Mas depois mv test.dat test.dat.txt, agora grep "grep" test.dat.txtfuncionou muito bem.

Solução alternativa bastante fácil (renomeie o arquivo), mas achei que esse era um comportamento estranho.

Responder1

Não é um comportamento normal e não consigo reproduzir o problema nas minhas máquinas Ubuntu nem Centos.

É muito provável que GREP_OPTIONSesteja configurado em seu bashrc (ou bash_profile, profile ou assim por diante) para ignorar *.dat.

Para verificar isso, basta imprimir a variável env:

 echo $GREP_OPTIONS

Em algum lugar na saída você deverá ver-exclude=*.dat

EDIT: Como sugerido pela Fox nos comentários, também pode ser um alias, então command -v grepdeve aparecer -exclude=*.datem algum lugar na sua saída

informação relacionada