Найти строку среди нескольких заархивированных файлов (веб-приложений)
Мы должны найти строку, скажем, "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