Em geral, não é possível procurar conteúdo em um arquivo compactado sem descompactá-lo de uma forma ou de outra. Como o zipgrep é apenas um shellscript, envolvendo o unzip e o egrep, você pode fazê-lo manualmente:
for file in *.zip; do unzip -c "$file" | grep "ORA-1680"; done
Se precisar apenas da lista de arquivos zip correspondentes, você pode usar algo como:
for file in *.zip; do
if ( unzip -c "$file" | grep -q "ORA-1680"); then
echo "$file"
fi
done
Desta forma, você está apenas descompactando para stdout (ou seja, para a memória) em vez de descompactar os arquivos para o disco. É claro que você pode tentar apenas grep -a
dos arquivos zip, mas dependendo do conteúdo do arquivo e do seu padrão, você pode obter falsos positivos e / ou falsos negativos.