
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.dat
não retornei nada.
Mas depois mv test.dat test.dat.txt
, agora grep "grep" test.dat.txt
funcionou 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_OPTIONS
esteja 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 grep
deve aparecer -exclude=*.dat
em algum lugar na sua saída