grep se preocupa com a extensão .dat?

1

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

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

Se eu grep uma frase que eu absolutamente sei que está lá, ela não retorna, como se não encontrasse nada.

A esquisitice é se eu simplesmente o renomeio com uma extensão diferente, como file.dat.txt , agora o grep funcionará bem. Se eu mudar o nome de volta para file.dat , mais uma vez o grep não encontrará nada.

Eu também criei um arquivo .dat simplesmente com o comando echo:
echo "grep this" > test.dat
E ainda assim, grep "grep" test.dat não retornou nada.
Mas depois de mv test.dat test.dat.txt , agora grep "grep" test.dat.txt funcionou muito bem.

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

link

    
por Mike Dannyboy 25.04.2017 / 18:39

1 resposta

4

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 definido em seu bashrc (ou bash_profile, perfil ou assim por diante) para ignorar * .dat.

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

 echo $GREP_OPTIONS

Em algum lugar da saída, você deve ver -exclude=*.dat

EDIT: Como sugerido pela Fox nos comentários também poderia ser um alias, então command -v grep deve mostrar -exclude=*.dat em algum lugar em sua saída

    
por 25.04.2017 / 18:48

Tags