Cara daftar file dalam zip tanpa informasi tambahan di baris perintah

37

Di baris perintah bash saya, ketika saya menggunakan unzip -l test.zipsaya mendapatkan output seperti ini:

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

Tapi saya hanya tertarik dengan baris yang berisi detail file.

Saya mencoba membuat pemfilteran menggunakan grep seperti ini:

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

Tetapi panjang dan rentan terhadap kesalahan (mis. Arsip nama file dalam daftar ini akan dihapus)

Apakah ada opsi lain dengan unzip -l (saya memeriksa halaman manual unzip dan tidak menemukan) atau alat lain untuk melakukannya?

Penting bagi saya untuk tidak benar-benar membuka ritsleting arsip tetapi hanya untuk melihat file apa yang ada di dalamnya.

рüффп
sumber
Jawaban yang diterima jauh lebih baik dari ini; tapi saya ingin berkomentar bahwa apa saja yang banyak grepdapat di-refactored menjadi skrip Awk, biasanya dengan presisi yang jauh lebih baik. awk 'NR >3 { if (/^ *---/) exit 0; print }'akan memangkas tiga baris pertama serta footer, dan juga dapat dengan mudah mengekstraksi hanya nama file (petunjuk:) print substr($0, 29).
tripleee
Ya, saya sepenuhnya setuju, itulah mengapa saya mengajukan pertanyaan spesifik: untuk memiliki solusi yang lebih baik dan layak.
рüффп

Jawaban:

55
zipinfo -1 file.zip

Atau:

unzip -Z1 file.zip

Akan mencantumkan hanya file.

Jika Anda masih menginginkan info tambahan untuk setiap nama file, Anda dapat melakukan:

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

Atau:

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

Atau (dengan asumsi GNU head):

unzip -l file.zip | tail -n +4 | head -n -2
Stéphane Chazelas
sumber
terima kasih sed kuat ... persis apa yang saya inginkan; Alat zipinfo juga menarik, saya tidak tahu itu.
рüффп
Apakah ada cara untuk mengabaikan direktori? unzip -Z1 zipfile.zipakan menampilkan: direktori / dan direktori / file.extension (Catatan: kemungkinan nama direktori dengan., sehingga menambahkan | grep .tidak berfungsi)
Matt