web-dev-qa-db-fra.com

Comment rechercher un fichier dans plusieurs bocaux

Vous souhaitez rechercher un fichier dans un ensemble de fichiers jar. Comment cela peut-il être fait dans Ubuntu Termianl?

2
Yasitha

Je comprends que vous souhaitez rechercher un fichier spécifique - et non rechercher une chaîne dans un fichier dans l'archive .jar.

Une autre option, sans zipgrep, juste avec Zip, sed et amis. Supposons que vous souhaitiez parcourir les fichiers jar dans le répertoire courant:

for i in *.jar ; do unzip -l "$i" | sed "s?.*?$i: &?" ; done | grep "filetofind"
3
January

Pour rechercher à partir du terminal, voyez ceci Post

Pour ce faire à partir de l'interface graphique, téléchargez jar-Explorer . Une fois téléchargé, appuyez simplement sur Ctrl+Alt+T sur votre clavier pour ouvrir Terminal. Lorsqu'il s'ouvre, exécutez la ou les commandes ci-dessous:

Java -jar jarexplorer-0.7-BETA.jar
1
Mitch

Vous devriez pouvoir utiliser zipgrep pour faire ceci et plus (il recherchera à l'intérieur des fichiers).

Avertissement: Non testé, n'hésitez pas à voter si cela n'a pas fonctionné.

0
Javier Rivera

Pour rechercher la chaîne 'qawas' à l'intérieur du pot

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

ou utilisez ci-dessous pour trouver quelle classe utiliser

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
Harish Shan