find . ! -name . -prune -type f -exec cat {} + | grep mystring | LC_ALL=C sort -u
Or:
find . ! -name . -prune -type f -exec cat {} + | awk ' /mystring/ && !seen[$0]++'
With GNU grep:
LC_ALL=C grep -hr --exclude-dir='?*' mystring | LC_ALL=C sort -u
Or with zsh and GNU grep:
grep -h mystring ./*(D.) | LC_ALL=C sort -u
To also search in files in sub-directories, recursively:
find . -type f -exec cat {} + | grep mystring | LC_ALL=C sort -u
Or:
find . -type f -exec cat {} + | awk ' /mystring/ && !seen[$0]++'
With GNU grep:
grep -hr mystring | LC_ALL=C sort -u
Note that all those solutions also look inside hidden files (and files inside hidden directories), but not in non-regular files and wouldn't follow symlinks (unless you use some old version of GNU grep with -r).