348 zip dosyam var ve zip dosyalarından birinde olan, unzip -l
joker kartlarla çalışmayan bir dosyayı bulmak istiyorum.
Tüm .zip
dosyaların içeriğini grep
ve fermuarlarda bulunan tüm dosyaların birleştirilmiş listesini nasıl listeleyebilirim?
348 zip dosyam var ve zip dosyalarından birinde olan, unzip -l
joker kartlarla çalışmayan bir dosyayı bulmak istiyorum.
Tüm .zip
dosyaların içeriğini grep
ve fermuarlarda bulunan tüm dosyaların birleştirilmiş listesini nasıl listeleyebilirim?
Yanıtlar:
Burada kullanmak zipinfo
iyi bir çözümdür. Ancak, genel olarak bir dosya listesine komut uygulamak istediğinizde ve komut bir dosya listesini kabul etmediğinde, bir for
döngü kullanabilirsiniz :
for file in *.zip; do
unzip -l "$file"
done \
| grep "\.zip\|setup"
Eğer aradığınız dosyanın içinde boşluklar varsa: your file
grep normal ifadesinde, her boşluktan bir ters eğik çizgi ile çıkmanız gerekir grep "\.zip\|your\ file"
.
unzip
, ne kadar utanç verici olduğunu unuttum .
find
yerine.
Kullanabilirsiniz zipinfo
. Varsayılan Ubuntu kurulumuna dahil edilmiştir. Kontrol kılavuz sayfasını daha fazla bilgi için.
Örneğin, setup
geçerli dizindeki bir sürü zip dosyasındaki bir deseni aramak için bu komutu kullanın:
find ./ -iname *zip 2> /dev/null -print0 | xargs -0 zipinfo | grep setup
caution: filename not matched: case1.zip
... caution: filename not matched: case348.zip
iki Ubuntu işletim, 11.10 ve 12.04 üzerinde test her zip için.
setup
ve bu şekilde zipinfo -l * | grep "setup"
Dosyaları bir zip arşivinde listelemek için aşağıdaki komutu kullanabilirsiniz.
unzip -l
Sıkıştırılmış bir arşivi greplemek için, bu tür arşiv biçimiyle çalışmak üzere oluşturulmuş sıkıştırılmış arşiv yardımcı programlarını kullanmalısınız.
Zip arşivleri için:
zipgrep --help
usage: zipgrep [egrep_options] pattern zipfile [members...]
Uses unzip and egrep to search the zip members for a string or pattern.
Katran arşivleri için:
zgrep --help
Usage: /bin/zgrep [OPTION]... [-e] PATTERN [FILE]...
Look for instances of PATTERN in the input FILEs, using their
uncompressed contents if they are compressed.
OPTIONs are the same as for 'grep'.
Arşivlerle çalışan başka birkaç araç var. Aynı şeyi yapmak için boruyu grep içine sokabilirsiniz.
zcat
zcat my.archive.zip | grep "some text"
Veya bu araçların arama işlevini kullanabilirsiniz
zless
zmore