Как искать файл в нескольких банках

Хотите найти файл внутри набора файлов jar. Как это можно сделать в ubuntu termianl?

2
задан 4 July 2013 в 14:22

4 ответа

Я понимаю, что вы хотите найти определенный файл, а не искать строку в файле в архиве .jar.

Еще один вариант, без zipgrep, просто с zip, sed и друзьями. Предположим, вы хотите просмотреть файлы JAR в текущем каталоге:

for i in *.jar ; do unzip -l "$i" | sed "s?.*?$i: &?" ; done | grep "filetofind"
0
ответ дан 4 July 2013 в 14:22

Вы должны быть в состоянии использовать zipgrep , чтобы сделать это и многое другое (он будет искать внутри файлов).

Отказ от ответственности: не проверено, не стесняйтесь понижать голос, если это не сработало.

0
ответ дан 4 July 2013 в 14:22

Для поиска из терминала см. Это Пост

Для этого из GUI загрузите jar-explorer . После загрузки просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду (ы) ниже:

java -jar jarexplorer-0.7-BETA.jar
0
ответ дан 4 July 2013 в 14:22

Для поиска строки «qawas» внутри банки

find . -iname '*.jar' -printf "unzip -c %p | grep -q 'qawas' && echo %p\n" | sh

или, альтернативно, используйте ниже, чтобы найти, какой класс использовать

find . -iname '*.jar' -print | while read jar; do
  echo "$jar:"
  unzip -qq -l $jar | sed 's/.* //' | while read cls; do
    unzip -c $jar $cls | grep -q 'Tag read' && echo "   "$cls
  done
done
0
ответ дан 4 July 2013 в 14:22

Другие вопросы по тегам:

Похожие вопросы: