Команда bash: поиск класса в файловой системе jars - PullRequest
4 голосов
/ 15 октября 2010

Я хочу рекурсивно искать в моем хранилище maven (папка n глубокую иерархию jar-файлов) определенный класс внутри неизвестного jar-файла.

jar -tvf myJar.jar | grep ClassIWant.class прекрасно работает для известного jar-файла, но у меня возникают проблемы с передачей команд в bash для создания рекурсивного поиска.

Любые намеки приветствуются.

Похожие: BASH :: найти файл в архиве из командной строки

Ответы [ 3 ]

9 голосов
/ 15 октября 2010
find -name \*.jar | xargs -n1 -iFILE sh -c "jar tvf FILE | sed -e s#^#FILE:#g" | grep classIWant\\.class | cut -f1 -d:
3 голосов
/ 15 октября 2010

Сообщение уже существует. Решено здесь Найти jar-файл по названию класса? Спасибо за альтернативы.

3 голосов
/ 15 октября 2010

Баш 4 +

shopt -s globstar
for file in **/*.jar
do
  jar -tvf "$file" | grep ....
done

<4 ++ </p>

find /path -type f -name "*.jar" | while read -r FILE
do
     jar -tvf "$FILE" | grep ....
done
...