You could just grep through it to find which files contain "foo", but not "John". If you cat the result to a text file which will show you the path.
$ echo "$(grep -Eir Foo /home/guarriman/20041129/* | grep -Eirv John)" > temp_file
This will put all the output in "temp_file" and will show you the path.
You could also find a way just to print the path, but i don't know how to do that atm.
Hope this helps.