I have Linux Mint 17.2.

I wish to be able to search a specific directory recursively, for a specific string, within any of .odt .ods .doc & .xls files. The search string may have spaces in it eg "like this or this".

I beleive .odt .ods .doc .xls document files are kept in either compressed or binary format which makes straight forward use of grep for searching content inapplicable.

The solution also needs to be able to search through file names that have spaces in them eg "this long file name.odt".

Please format as a one liner.

If you can add find so that specific file types or file names can be searched that would also be beneficial.

Thank you

ps this is perhaps not as straight forward as it might first appear. For example the solution posted [here](http://ubuntuforums.org/showthread.php?t=1488252) is as follows

```
sudo apt-get install antiword
for i in *.doc; do
antiword $i | grep 185223 && echo Found in $i
done

```

However it does not cope with file names that have spaces in them. 

An idea posted [here](http://www.cyberciti.biz/faq/howto-s...r-text-string/) shows how to search file names that have spaces in them using sed though I was unable to convert this from the given piped one liner to a multi-line script, with a loop in it and a variable, as shown above.