Den Inhalt einer gezippten Datei ohne Extraktion lesen?

153

Wie kann ich den Inhalt einer bestimmten Datei in einem Archiv lesen, ohne die darin enthaltene ZIP-Datei zu extrahieren? Ich benutze die Linux-Befehlszeile.

In einer früheren Frage wird nach dem Anzeigen des Archivverzeichnisses gefragt. Aber für mich ist es nicht genug, nur eine Liste der Dateien im Archiv zu sehen, ich muss den Inhalt einer Datei im Archiv sehen.

Shrikanth
quelle
@ fixer1234 (und andere): Die verknüpfte Frage lautet: "Wie kann ich die Dateien in einem ZIP-Archiv anzeigen?" AFAIC, das ist die gleiche Frage wie "Wie kann ich den Inhalt einer Datei anzeigen ...?" Die Personen, die diese Frage beantworteten, interpretierten sie als „Wie kann ich das Archivverzeichnis anzeigen?“. Gilles 'Antwort (natürlich) und Rajasekhar Toletys (anscheinend) Antwort auf diese Frage geben jedoch Antworten auf diese Frage.
Scott
1
@Scott, vielleicht sollten wir herausfinden, wie die beiden Fragen zusammengeführt werden, damit beide Themen in einem behandelt werden, oder den anderen neu ausrichten, um das Verzeichnis eindeutig zu kennzeichnen, und dann die Antworten zwischen den beiden Stellen verschieben, um den Fragen zu entsprechen. Im Moment sind beide ein Mischmasch.
Fixer1234
@ fixer1234: Ich stimme bis zu einem gewissen Punkt zu. Die Moderatoren sagen uns immer, dass Duplikate eine gute Sache sind, weil sie eine größere Oberfläche für die Suchmaschinen bieten (dh mehr Chancen, dass eine Suche eine der Fragen findet). Aber da ist der Haken: Wenn ein Benutzer eine der Fragen findet und die Verknüpfung nicht offensichtlich ist (und niemand die Listen mit "verknüpften" und "verwandten" Fragen ansieht - zumindest nicht zufällige Anhänger von Suchergebnissen), dann die Benutzer hat nur einen Bruchteil der Antworten gefunden. DavidPostill gab die Schlussabstimmung ab, um diese Frage erneut zu eröffnen. Vielleicht solltest du mit ihm reden.
Scott
@Scott - Da der Fragesteller die Antwort "Wie kann ich das Verzeichnis des Archivs anzeigen?" Als akzeptiert markiert hat, muss ich annehmen, dass dies wahrscheinlich die Absicht der Frage war. Es ist leider zweideutig formuliert, so dass es jede Interpretation bedeuten könnte.
M. Justin

Antworten:

198

unzip -l archive.zip listet den Inhalt eines ZIP-Archivs auf, um sicherzustellen, dass sich Ihre Datei darin befindet.

Verwenden Sie die -cOption, um den Inhalt benannter Dateien in stdout (screen) zu schreiben, ohne das gesamte Archiv dekomprimieren zu müssen.

unzip -c archive.zip file1.txt file2.txt | less

Für diese Art von Operation leite ich die Ausgabe immer an less, da sonst die gesamte Datei über den Bildschirm fliegt, bevor Sie sie lesen können.

BTW zcat eignet sich hervorragend zum Anzeigen des Inhalts von .gz-Dateien, ohne sie vorher dekomprimieren zu müssen.

Danielcraigie
quelle
8
Zumindest in Ubuntu ist weniger so konfiguriert, dass dies standardmäßig erfolgt - es wird also less archive.ziptatsächlich die Liste der Dateien angezeigt .
Aviv
1
Mit bzcat können Sie den Inhalt von bz2-Dateien anzeigen, ohne sie zuerst dekomprimieren zu müssen ...
Justin E
3
unzip -c zeigt auch den Dateinamen und einige zusätzliche Nachrichten an (die an stdout gesendet werden). Wenn Sie stattdessen -p verwenden, wird die Datei nur im Binärformat gesendet. Das ist nützlicher für die Rohrleitung
Juan Calero
Mit Ihrer $LESSOPENEinstellung auf lesspipe können Sie nur less foo.gzden dekomprimierten Inhalt anzeigen. (@aviv: Dies ist das Gleiche, das es ermöglicht less foo.zip, unzip -l foo.zipin sich selbst hinein zu pfeifen .)
Peter Cordes
unzip -c archive.zip '*' | lessmacht was ich suchte: cat den inhalt des zip archivs.
Peter Cordes
4

zipinfoist ein weiteres Tool, das Sie möglicherweise verwenden. Dies ist nützlich, wenn Sie sich auf einem gesperrten System befinden, auf dem dies unzipnicht zulässig ist.

Nickolai
quelle
4

Wenn Sie nur sehen suchen Bilder in den Archiven, können Sie Comix oder neue MComix Bilder innen sehen .zip, .rar, .cbr, und .cbzDateien , ohne zu extrahieren.

Kokizzu
quelle
2

Starten Sie Emacsin der Befehlszeile und öffnen Sie Ihre Zip-Dateien im Zip-ArchiveModus. Ohne Emacs / Elisp-Tuning (neue Benutzer haben generell Angst davor) sehen Sie Dateidetails wie zipinfo: Modi, Länge, Datum, Uhrzeit

Anschließend können Sie Dateien in Puffern öffnen und Ihre Änderungen sogar mit den folgenden Standardverknüpfungen wieder im Archiv speichern:

  • Geben Sie einen Dateinamen in die Liste ein, um sie zu öffnen
  • Bearbeiten und speichern mit Ctrl-x Ctrl-s
  • Puffer löschen Ctrl-k, um zum Archivpuffer zurückzukehren und fortzufahren

Zip-ArchiveVerwenden Sie im Puffer, Ctrl-h mum alle in der Hilfeansicht verfügbaren Verknüpfungen abzurufen.

Hoffe, dies könnte Sie dazu bringen, Emacs fantastische Funktionen zu entdecken

Yves Martin
quelle
1

Sie können verwenden vimInhalt der zur Liste zip/ rar/ tarArchiv:

vim archive.zip

Übrigens: hier ist die gleiche Frage.

patryk.beza
quelle
0

Ich habe herausgefunden less archive.zip, dass dies der einfachste Weg ist.

RobertMyles
quelle
2
less archive.zip zeigt nicht den Inhalt einer komprimierten Datei an, sondern nur den Inhalt eines komprimierten Archivs .
Karel
Vielen Dank für die Klarstellung, @karel
RobertMyles
Ich denke, dass das, was du wirklich versuchst, dasselbe ist wie die Antwort von Danielcraigie.
Karel
-1

Wenn die Datei im ZIP-Archiv enthalten ist, müssen Sie nur diese Datei aus dem Archiv extrahieren (abhängig vom Archivtyp können einige Archive Dateien nicht separat extrahieren).

Blogger
quelle
Ja, aber Sie können nach stdout extrahieren und direkt in einen Pager leiten.
Peter Cordes
Dies ist keine technische Antwort, sondern eher von einem Politiker oder Anwalt. Bitte sei spezifischer! (Zeigen Sie den Befehl zum Beispiel)
Hola Soy Edu Feliz Navidad