Free text search in .jar files
20 september 2010 - 21:23   
geplaatst door: ettepet
Hoe (terminal-commando ?) kan ik op vrije tekst zoeken binnen een directory waarin een groot aantal .jar-files (ingepakte .xml-files) staat?

En dan wil ik op tekst in de .xml-files kunnen zoeken.

Spotlight kijkt er helaas finaal overheen... :cry:

Free text search in .jar files
21 september 2010 - 07:23    reactie #1
geplaatst door: Pieterr
Jar files zijn zipfiles. Je zult dus op zoek moeten naar een oplossing die kan zoeken in zipfiles.

Als dat niet lukt, zou je een script kunnen maken wat de jarfile eerst (tijdelijk) uitpakt, en daarna zoekt in het resultaat.

XML files zijn tekstfiles. Daarin zoeken is niet moeilijk.

"One experiment is worth a thousand expert opinions."
Free text search in .jar files
21 september 2010 - 14:41    reactie #2
geplaatst door: ettepet
Hmm, eerst uitpakken en dan doorzoeken en dan de uitgepakte map weer weggooien....

Klinkt niet als de meest ideale oplossing - te meer ook omdat de mappen die ik wil doorzoeken honderden jar-files (broncode van een contentmanagementsysteem xml en javaclasses) bevat, waarin ook weer honderden files.
Dit zal veel tijd kosten bij elke zoekaktie.

Gemiste kans voor m'n geliefde OSX - zelfs met MS Windows 2000 kan ik zoeken in jars, zowel in de .xml als in de .class files (al heb je aan dat laatste niet zo gek veel:) :inlove:

Free text search in .jar files
21 september 2010 - 15:20    reactie #3
geplaatst door: Pieterr
Kun je niet gewoon EEn keer alle jarfiles uitpakken, en de zoekacties doen in de uitgepakte boom?

"One experiment is worth a thousand expert opinions."
Free text search in .jar files
21 september 2010 - 15:26    reactie #4
geplaatst door: Pieterr
Misschien heb je nog iets aan de JD - Java Decompiler.
Die kan jarfiles inlezen en heeft een zoekfunctie (zo te zien aan het voorbeeldscherm) die in de class files zoekt.
Er is een versie voor OS X beschikbaar.
"One experiment is worth a thousand expert opinions."
Free text search in .jar files
21 september 2010 - 15:45    reactie #5
geplaatst door: Joran
Heb geen MacOS bij me, maar wel linux. Kan je niet zoiets doen? Shell script:

#!/bin/bash

export LIST_OF_JARS=$(ls -al *.jar| awk '{print $9}')

for I in $LIST_OF_JARS
do
       unzip -qq $I

       echo $I

       find . -name '*.xml'  | xargs grep -s string_to_search

       rm -f *.xml

done

(Bewerkt door Joran om 15:45, 21-09-2010)

Free text search in .jar files
21 september 2010 - 20:45    reactie #6
geplaatst door: ettepet
Tja.... Dank voor alle reacties.
Maar het blijft behelpen. Toch heel erg spijtig dat Spotlight dit kunstje niet onder de knie heeft.

Ik kwam deze Jar Browser nog tegen.
Maakt het zoeken in een compleet project met honderden jar-files wel enigszins inzichtelijk, maar een text-search heb ik er jammergenoeg niet in kunnen ontdekken.

Free text search in .jar files
23 september 2010 - 01:58    reactie #7
geplaatst door: Willemien
er zijn plugins voor Spotlight waaronder Ninjar
http://www.apple.com/downloads/macosx/spotlight/ninjar.html
misschien heb je er wat aan
Free text search in .jar files
23 september 2010 - 09:51    reactie #8
geplaatst door: KJ

Citaat
Pieterr om 7:23, 21-09-2010
Jar files zijn zipfiles. Je zult dus op zoek moeten naar een oplossing die kan zoeken in zipfiles.

Jar files zijn helemaal geen zipfiles, Java Archives, toch wel heel wat anders.

KJ
Set your mind to elegant electronic music: http://www.eevolute.com
Free text search in .jar files
23 september 2010 - 10:17    reactie #9
geplaatst door: Pieterr
@KJ: Misschien handig om je eerst even wat in de materie te verdiepen voordat je een bijdrage levert.  
"One experiment is worth a thousand expert opinions."
Free text search in .jar files
23 september 2010 - 11:12    reactie #10
geplaatst door: FanBoy
@pieterr, er is toch geen woord gelogen van wat KJ zegt??

In computing software, a JAR file (or Java ARchive) aggregates many files into one.[1] Software developers generally use .jar files to distribute Java applications or libraries, in the form of classes and associated metadata and resources (text, images, etc.)
JAR files build on the ZIP file format. Computer users can create or extract JAR files using the jar command that comes with a JDK. They can also use zip  tools to do so, however caution should be exercised as to the order of entries in the zip file headers as the manifest likely needs to be first

-= If you ain't got nothing nice to say, then don't say nothing at all =-
Free text search in .jar files
23 september 2010 - 11:26    reactie #11
geplaatst door: Pieterr
De TS heeft een heleboel jarfiles. Hij wil tekststrings zoeken in de XML files die in deze jarfiles opgeslagen zijn. Hij zou dat kunnen doen met een tool die kan zoeken naar tekststrings in zipfiles, omdat voor de compressie van jarfiles gewoon het standaard zipformaat wordt gebruikt.

Zo duidelijk genoeg?

"One experiment is worth a thousand expert opinions."
Free text search in .jar files
23 september 2010 - 12:58    reactie #12
geplaatst door: Cailin Coilleach
Mag ik u voorstellen aan "unzip -c"?


for FILE in $(ls *.jar)
do
unzip -d $FILE | grep "$STRING"
done

Wat de TS wil, een search functie die z'n JARetjes indexeert, lijkt me meer iets dat in een ontwikkelomgeving geintegreerd zou worden. Het lijkt me niets voor Spotlight zelf. Kan me dus goed indenken dat omgevingen als XCode en repositories als SVN wel een dergelijke optie bieden.

(Bewerkt door Cailin Coilleach om 13:00, 23-09-2010)