PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ftp-Verzeichnis durchsuchen



df8oe
31.07.07, 19:57
Ich habe folgendes Problem:

Auf einem entfernten ftp-Server befinden sich ca. 150 Ordner, in diesen wieder Unterordner, und in etwa Tiefe "4" sind dann zip-Dateien. Ich müsste alle Dateien in diesen zip's suchen, die in ihrem Namen einen bestimmten String enthalten.

Sicher: ich kann mich manuell "durchklicken" und die zip's mit ARK öffnen, um sie anzuschauen.

Das geht doch aber sicher auch anders! Fertiges Programm? Oder script?

Kann da jemand helfen?

mit freundlichem Gruß
df8oe

fehl-x
31.07.07, 21:33
man kann mit hilfe des curlftpfs (file system im userspace, FUSE) einen ftp server mounten. dann solltest du "ganz normal" find verwenden können.

felix

tschloss
31.07.07, 21:42
http://www.mrunix.de/forums/showthread.php?t=52380

kreol
01.08.07, 00:27
find in Verbindung mit Regular Expressions (http://de.wikipedia.org/wiki/Regexp) für die .zip


Kreol

df8oe
01.08.07, 08:08
Leider sind meine bash-Kenntnisse zu gering und eine google-Suche brachte mich nicht wesentlich weiter.

Ich habe mit Hilfe des curlftpfs das entsprechende Verzichnis gemonuted, nun scheitere ich an find. Durch die "regulären Ausdrücke" steige ich nicht durch - aber ich habe "zipgrep" durch google gefunden. Aber ich will ja nicht nach Inhalten der gezippten Datein suchen, ich möchte nach Dateien suchen, deren Namen ein bestimmtes Muster enthalten - und dann den Namen und genauen Pfad der betreffenden Zip-Datei ausgeben lassen. Vielleicht hilft ja auch schon grep oder egrep - aber dot scheitere ich daran, daß die Datein in einem zip-Archiv sind :(

Mit dem Link von tschloss kann ich leider gar nichts anfangen - das ist mir zu hoch...

marce
01.08.07, 08:19
Du könntest über find die Dateien suchen, die *.zip im -name haben, diese dann über -exec z.B. mit unzip -l deren Inhalt anzeigen lassen und daraus dann über eine Pipe nach grep die herausfiltern, welche die gewünschte Zeichenfolge enthalten...

Jetzt noch ein bisserl man-Page lesen und probieren, dann sollte das mit den Tipps machbar sein...

df8oe
01.08.07, 09:16
Hmmmm Spannend, das Ganze!

Ich habe es jetzt geschafft, ein bestimmtes Verzeichnis rekursiv nach allen zip-Dateien zu durchsuchen und dann die Archive nach einem Namens-Suchmuster zu durchforsten. Leider wird mir aber nicht der Pfad und Name zur betreffenden Zip-Datei angezeigt, sondern nur die Zeile, in der das Muster auftaucht. Wie bekomme ich das jetzt dazu, Pfad und Namen anzuzeigen?

Hier meine Zeile:



find $DIR -iname "*.zip" -exec unzip -l {} \; | grep '$SRCHSTRING'


??
df8oe

marce
01.08.07, 09:42
gerade auch mal herumprobiert... grep braucht man nicht - es geht auch so:

find . -name "*.zip" -exec unzip -l {} "*.png" \;

df8oe
01.08.07, 10:05
@marce

Sieht schon sehr gut aus! Nur werden mir dabei auch die Archive aufgelistet, in denen KEIN Treffer ist. Bei über 500 Archiven ist es schwierig, die Auflistungen mit Treffern zu finden. Wenn ich dann grep drauf loslasse, wird mir wieder nur die eine Zeile angezeigt - ohne den Pfad und Dateinamen...

df8oe

buzz768
01.08.07, 12:06
find $DIR -name \*.zip -exec bash -c "unzip -l '{}' | grep -q "$SRCHSTR" && echo '{}'" \;

df8oe
01.08.07, 13:57
B*I*N*G*O!!

Das werde ich erstmal versuchen, nachzuvollziehen (warum und wieso). Danke!!

Mit freundlichem Gruß in die ganze Runde
df8oe