grep suporta a opção --binary-files para tratar arquivos binários como binary , text ou without-match . A última opção deve pular arquivos binários. É equivalente a grep -I . Fiz um teste e parece que o grep do Busybox suporta -I para ignorar arquivos binários.
grep não é "mágico" para determinar se um arquivo é binário ou texto: ele simplesmente verifica os primeiros bytes para ver se eles parecem ser texto ou não e assume o mesmo para o resto do arquivo (de acordo para man grep ).
Sidenotes: pode-se emular isso, por exemplo, Comparando se head -1 myfile de um arquivo é igual a head -1 myfile | strings . Se file estiver disponível, é ainda mais confiável, mas não está no Busybox e provavelmente não no sistema se o Busybox for usado principalmente.