В целом не возможно искать содержание в сжатом файле, не распаковывая его так или иначе. Так как zipgrep является только сценарием оболочки, обертывание разархивировали и сам egrep, Вы могли бы точно также сделать это вручную:
for file in *.zip; do unzip -c "$file" | grep "ORA-1680"; done
При необходимости просто в списке соответствия zip-файлам можно использовать что-то как:
for file in *.zip; do
if ( unzip -c "$file" | grep -q "ORA-1680"); then
echo "$file"
fi
done
Таким образом, Вы только распаковываете к stdout (т.е. к памяти) вместо того, чтобы распаковать файлы к диску. Можно, конечно, попытаться просто grep -a
zip-файлы, но в зависимости от содержания файла и Вашего шаблона, Вы могли бы получить ложные положительные стороны и/или ложные отрицательные стороны.
Их называют modelines, по крайней мере, в энергии. Посмотрите :help modeline
- не точно сленг, но по крайней мере это - что-то для вызова их.
vi
по умолчанию не включает modelines, в то время какvim
делает. – Xiè Jìléi 31.12.2010, 08:53