As you said, a "\" after "|" does not make a functional difference.
Is your searchstring.out file okay?
Look at it with an editor on Unix.
Not created from WinDOS that appends invisible ^M (CR)...
A second error is
for k in match.out ;You certainly want
for k in `cat match.out`like you did in the outer loop.
But this is not ideal for many reasons. A more efficient and less risky version:...
The * must be evaluated by the find command, you must escape it from the shell.
find / -name \*$j\*
where the $j is still evaluated by the shell. If this is not wanted, use a " " escape.
find /...