Eu fiz um usando a ferramenta ssconvert (do Gnumeric). Você precisa instalar o Gnumeric primeiro:
sudo apt-get install gnumeric
Você pode salvar o conteúdo como script e chamar:
./script-find-in-xls.sh text
O conteúdo do script.
#!/bin/sh
# $1 - text to find
if [ -z "$1" ]
then
echo 'Please, the text is mandatory'
exit 1
fi
rm -rf /tmp/xls-csv/
mkdir /tmp/xls-csv/
cd /tmp/xls-csv/
cp /location/of/excel-files/*.xls /tmp/xls-csv/
for f in *.xls; do
ssconvert -S --import-encoding=ISO8859-1 ./"$f" ./"${f%.xls}.csv"
done
cat *.csv.* > all-xls-content.txt
rm *.csv.*
if cat all-xls-content.txt | egrep --color $1; then
echo 'found'
else
echo 'not found'
fi
O script converte todos os arquivos xls em arquivos csv, associa os arquivos csv em um único arquivo e usa o egrep
para localizar o texto.
O código não é perfeito, mas faça o trabalho.