Wie kann man eine ZIM-Datei "dekomprimieren"?

1553
Nicolas Raoul

Ich habe eine ZIM- Datei und möchte deren Inhalt überprüfen. Zählen Sie insbesondere die Anzahl der Artikel und Bilder und durchsuchen Sie möglicherweise Bilder.

Wie geht das? Vorzugsweise unter Linux, aber Anweisungen für andere Systeme sind ebenfalls in Ordnung.

Ich möchte keine Bilder zählen, indem ich das ZIM in Kiwix öffne und alle tausend Seiten durchblättere und manuell zähle.

Es ist weder von XZ noch von ZIP unkomprimierbar:

$ unxz wikivoyage_en_all_2015-09.zim unxz: wikivoyage_en_all_2015-09.zim: File format not recognized  $ zipinfo wikivoyage_en_all_2015-09.zim Archive: wikivoyage_en_all_2015-09.zim [wikivoyage_en_all_2015-09.zim] End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. zipinfo: cannot find zipfile directory in one of wikivoyage_en_all_2015-09.zim or wikivoyage_en_all_2015-09.zim.zip, and cannot find wikivoyage_en_all_2015-09.zim.ZIP, period. 
0
Ihr Link sagt: "Das Format erlaubt die Komprimierung von Artikeln mit LZMA2, wie von der xz-utils-Bibliothek implementiert". Haben Sie es mit `unxz versucht?"? ap0 vor 9 Jahren 0
@ ap0: Ja, ich habe es versucht, es heißt "unxz: wikivoyage_en_all_2015-09.zim: Dateiformat nicht erkannt". Nicolas Raoul vor 9 Jahren 0

1 Antwort auf die Frage

1
Nicolas Raoul

Der einfachste Weg ist die Verwendung des Befehls zimdump, Teil von Zimlib .

Beispielausgabe:

zimdump -F wikivoyage_en_all_2015-09.zim count-articles: 84897 uuid: 9213375a-53f4-819c-47ed-41fc87e7028f article count: 84897 mime list pos: 80 url ptr pos: 193 title idx pos: 679369 cluster count: 40711 cluster ptr pos: 5169080 checksum pos: 468245393 checksum: 05b9bbf3b6d0c955b6ee74a3f929d911 main page: 44192 layout page: - 

Nicht sicher, was diese bedeuten, aber zumindest die Anzahl der Artikel ist verfügbar.

Die -DOption speichert alles in einem Verzeichnis.

zimdump -D name_of_dir file.zim