Bir zip dosyasındaki dosyalar komut satırında ek bilgi olmadan nasıl listelenir?


37

Bash komut satırında, kullandığımda unzip -l test.zipşöyle bir çıktı alıyorum:

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

Ancak yalnızca dosya ayrıntılarını içeren satırlarla ilgileniyorum.

Bu şekilde grep kullanarak filtreleme yapmaya çalıştım:

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

Ancak uzun ve hataya açık (örneğin, bir dosya adı Arşivi bu listede bırakılacak)

Unzip -l olan bir seçenek var mı (unzip man sayfasını kontrol ettim ve bulamadım) ya da bunu yapmak için başka bir araç var mı?

Arşivi gerçekten açmak değil, sadece içinde hangi dosyaların olduğuna bakmak benim için önemlidir.


Kabul edilen cevap bundan daha iyidir; ama çoklu olan herhangi bir şeyin grepbir Awk betiğine yeniden yerleştirilebileceğini, genellikle çok daha hassas bir şekilde olabileceğini belirtmek isterim . awk 'NR >3 { if (/^ *---/) exit 0; print }'ilk üç satırı, altbilgiyi olduğu gibi kırpabilir ve aynı zamanda sadece dosya adını kolayca çıkararak ulaşılabilir (ipucu:) print substr($0, 29).
üçlü

Evet, kesinlikle aynı fikirdeyim, bu yüzden tam olarak bu soruyu soruyorum: daha iyi ve uygulanabilir bir çözüm için.
рüффп

Yanıtlar:


55
zipinfo -1 file.zip

Veya:

unzip -Z1 file.zip

Sadece dosyaları listelerdi.

Her dosya adı için hala ek bilgi istiyorsanız, şunları yapabilirsiniz:

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

Veya:

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

Veya (GNU varsayarak head):

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

teşekkürler güçlü sed ... tam olarak istediğim; Ayrıca zipinfo aracı ilginç, ben bilmiyordum.
рüффп

Dizinleri yoksaymanın bir yolu var mı? unzip -Z1 zipfile.zipdizin / ve dizin / file.extension: çıktısı (. Not: dizin isimleri bu yüzden bir ekleme muhtemelen | grep .işi değil)
Mat
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.