Cách liệt kê các tệp trong một zip mà không cần thêm thông tin trong dòng lệnh


37

Trong dòng lệnh bash của tôi, khi tôi sử dụng, unzip -l test.ziptôi nhận được đầu ra như thế này:

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

Nhưng tôi chỉ quan tâm bởi các dòng có chứa các chi tiết tập tin.

Tôi đã cố gắng thực hiện lọc bằng grep như thế này:

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

Nhưng nó dài và dễ bị lỗi (ví dụ: tên tệp Lưu trữ trong danh sách này sẽ bị loại bỏ)

Có bất kỳ tùy chọn nào khác với unzip -l (Tôi đã kiểm tra trang man giải nén và không tìm thấy bất kỳ) hoặc công cụ khác để làm như vậy?

Điều quan trọng với tôi là không thực sự giải nén tệp lưu trữ mà chỉ để xem những tập tin bên trong.


Câu trả lời được chấp nhận là tốt hơn nhiều so với điều này; nhưng tôi muốn nhận xét rằng bất cứ điều gì có nhiều grepcó thể được tái cấu trúc thành tập lệnh Awk, thường với độ chính xác được cải thiện nhiều. awk 'NR >3 { if (/^ *---/) exit 0; print }'sẽ cắt ba dòng đầu tiên cũng như chân trang và cũng có thể dễ dàng trích xuất tên tệp (gợi ý print substr($0, 29):).
tripleee

Vâng, tôi hoàn toàn đồng ý, đó chính xác là lý do tại sao tôi hỏi câu hỏi cụ thể đó: để có một giải pháp tốt hơn và khả thi hơn.
рüффп

Câu trả lời:


55
zipinfo -1 file.zip

Hoặc là:

unzip -Z1 file.zip

Chỉ liệt kê các tập tin.

Nếu bạn vẫn muốn có thêm thông tin cho từng tên tệp, bạn có thể làm:

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

Hoặc là:

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

Hoặc (giả sử GNU head):

unzip -l file.zip | tail -n +4 | head -n -2

cảm ơn sed mạnh mẽ ... chính xác những gì tôi muốn; Ngoài ra công cụ zipinfo rất thú vị, tôi không biết điều đó.
рüффп

Có cách nào để bỏ qua các thư mục? unzip -Z1 zipfile.zipsẽ xuất ra: thư mục / và thư mục / file.extension (Lưu ý: tên thư mục với. rất có thể, vì vậy việc thêm | grep .không hoạt động)
Matt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.