Faça isso:
set > /tmp/zshset
Em seguida, abra /tmp/zshset no seu editor favorito. Procure por IFS .
O valor padrão para isso, pela página zshparam man, é espaço padrão, tabulação, nova linha e NUL. Este último está causando o problema. grep vê o NUL (ascii 0, exibido frequentemente como ^@ ) e pensa que este é um arquivo binário.
Soluções possíveis:
- Defina o IFS para algum outro valor. Isso pode causar problemas se alguma outra coisa você espera que o NUL seja um delimitador válido.
- Use
grep -acomo sugerido por KeithB (ou seu equivalente--binary-files=text) - Crie um novo alias para você mesmo que use
grep -apara economizar um pouco de digitação - Adapte-se a analisar seu PATH por outros meios (por exemplo,
env | grep -i path,echo $PATH) - acho que as outras soluções são mais simples