How to unzip only the first few lines of a zip archive?

6,745

This simple pipe-script works for me:

zcat a.zip | head -n 10

Here:

  • zcat a.zip - unpacks zip-archive and sends its contents to standard output
  • | pipes zcat output to head input
  • head -n 10 - shows first 10 lines from its standard input
Share:
6,745
yukashima huksay
Author by

yukashima huksay

Apparently, that user prefers to keep an air of mystery about them.

Updated on September 18, 2022

Comments

  • yukashima huksay
    yukashima huksay over 1 year

    I have a zipped text file a.zip I want to read the first 10 lines of it. Is it possible to do that without unzipping the whole file?

  • yukashima huksay
    yukashima huksay over 6 years
    this unzips the whole file.
  • PerlDuck
    PerlDuck over 6 years
    @yukashima I'd guess it depends on the size of a.zip. When head terminates (after printing 10 lines) the zcat (which is gzip -dc behind the scenes) should receive a SIGPIPE and stop unzipping.
  • Xen2050
    Xen2050 over 6 years
    @yukashimahuksay How do you know it unzips the whole file? I think all zip files keep the file list at the end of the archive, maybe it's just reading the whole file but not actually unzipping it
  • user27164
    user27164 over 3 years
    I can confirm by example that it does not unzip the whole file as intended. zcat verybigfile.zip | head -10 prints the first 10 lines immediately. A full unzip would take ca. 10 minutes.