2016-05-31 21 views
0

Ich habe eine Reihe von nummerierten Unterverzeichnissen, die möglicherweise ZIP-Dateien enthalten oder nicht enthalten, und in diesen ZIP-Dateien sind einige einzeilige. Txt-Dateien, die ich brauche. Ist es möglich, eine Kombination aus find und unzip -p zu verwenden, um den Dateipfad und die einzelnen Zeileninhalte in derselben Ausgabezeile aufzulisten? Ich möchte die Ergebnisse in einer .txt speichern und in Excel importieren, um damit zu arbeiten.Finden Sie eine Zip-Datei, Druckpfad und zip-Inhalt

aus dem Hauptverzeichnis I erfolgreich und Ausgang die einzige Zeile finden:

find . -name 'file.zip' -exec unzip -p {} file.txt \; 

Wie kann ich das Präfix den Fund ausgegeben (das heißt der Dateipfad) mit dem Ausgang dieses unzip Befehl? Idealerweise möchte ich, dass jede Zeile der Textdatei ähnlich aussieht:

und so weiter. Kann mir jemand Vorschläge machen? Ich bin nicht sehr erfahren mit Linux-Befehlszeile über einfache Befehle hinaus.

Vielen Dank.

Antwort

0

Setzen Sie alle den Code in ein Shell-Skript ausführen möchten, verwenden Sie dann die exec Funktion das Shell-Skript aufrufen, das heißt

cat finder.bash 
#!/bin/bash 

printf "[email protected] : " # prints just the /path/to/file/file.zip 
unzip -p "[email protected]" file.txt 

Vorerst bekommen, dass, arbeiten Sie es generische machen passiere andere neben file.txt später.

Machen Sie das Skript ausführbar

chmod 755 finder.bash 

es von find Rufen. d. h.

find . -name 'file.zip' -exec /path/to/finder.bash {} \; 

(Ich habe keine einfache Möglichkeit, dies zu testen, also in Kommentaren mit Fehler msgs antworten).