After a few searches from Google, what I come up with is:
find my_folder -type f -exec grep -l \"needle text\" {} \\; -exec file {} \\; | grep text >
find my_folder -type f -exec grep -l \"needle text\" {} \\; -exec file {} \\; | grep text
Here's how I've done it ...
1 . make a small script to test if a file is plain text istext:
#!/bin/bash [[ "$(file -bi $1)" == *"file"* ]]
2 . use find as before
find . -type f -exec istext {} \; -exec grep -nHi mystring {} \;