31

In my bash command line, when I use unzip -l test.zip I get the output like this:

Archive:  test.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
   810000  05-07-2014 15:09   file1.txt
   810000  05-07-2014 15:09   file2.txt
   810000  05-07-2014 15:09   file3.txt
---------                     -------
  2430000                     3 files

But I am interested only by the lines containing the file details.

I tried to make filtering using grep like this:

unzip -l test.zip | grep -v Length | grep -v "\-\-\-\-" | g -v Archive | grep -v " files"

But it is long and prone to error (e.g a file name Archive in this list will be dropped)

Is there any other options with unzip -l (I checked the unzip man page and did not find any) or another tool to do so?

It is important to me to not really unzip the archive but just to look what files are inside.

  • The accepted answer is much better than this; but I want to remark that anything with multiple grep can be refactored into an Awk script, usually with much improved precision. awk 'NR >3 { if (/^ *---/) exit 0; print }' would trim the first three lines as well as the footer, and also be within reach of easily extracting just the file name (hint: print substr($0, 29)). – tripleee Nov 22 '17 at 11:16
  • Yes, I totally agree, that's is exactly why I ask that specific question: to have a better and viable solution. – рüффп Dec 20 '17 at 22:08
44
zipinfo -1 file.zip

Or:

unzip -Z1 file.zip

Would list only the files.

If you still want the extra info for each file names, you could do:

unzip -Zl file.zip | sed '1,2d;$d'

Or:

unzip -l file.zip | sed '1,3d;$d' | sed '$d'

Or (assuming GNU head):

unzip -l file.zip | tail -n +4 | head -n -2
  • thanks powerful sed... exactly what I wanted; Also the zipinfo tool is interesting, I didn't know it. – рüффп May 7 '14 at 14:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.