Найти строку среди нескольких заархивированных файлов (веб-приложений)

Мы должны найти строку, скажем, "foobar" среди нескольких веб-приложений.

Однако некоторые веб-приложения содержат сжатые файлы, например, log4j.jar.

Поэтому grep -IR "foobar" /pathto/tomcatroot/ не будет работать из-за сжатых файлов.

unzip -c /pathto/tomcatroot/libdir/log4j.jar | grep foobar может решить проблему, но только для одного файла

Есть ли способ добиться этого для всего каталога?

1 ответ

Для файла JAR вы можете попробовать это:

for i in *.jar; do jar -tvf "$i" | grep  yourstring && echo "$i"; done

Для zip-файлов вы можете попробовать zcat или zgrep

zcat yourfile.zip |grep string
Другие вопросы по тегам