Ho 348 file zip e voglio trovare un file che si trova in uno dei file zip, unzip -lnon funziona con i caratteri jolly?
Come posso elencare il contenuto di tutti i .zipfile e grepattraverso l'elenco unito di tutti i file contenuti nelle zip?
Ho 348 file zip e voglio trovare un file che si trova in uno dei file zip, unzip -lnon funziona con i caratteri jolly?
Come posso elencare il contenuto di tutti i .zipfile e grepattraverso l'elenco unito di tutti i file contenuti nelle zip?
Risposte:
L'uso zipinfoè un'ottima soluzione qui. Tuttavia, in generale ogni volta che si desidera applicare un comando a un elenco di file e il comando non accetta un elenco di file, è possibile utilizzare un forciclo:
for file in *.zip; do
unzip -l "$file"
done \
| grep "\.zip\|setup"
Se il file che stai cercando ha spazi come:: your filenell'espressione regolare grep devi scappare da ogni spazio con una barra rovesciata come grep "\.zip\|your\ file".
unzip, quanto imbarazzante.
findinvece.
È possibile utilizzare zipinfo. È incluso nell'installazione predefinita di Ubuntu. Controlla la pagina del manuale per maggiori informazioni.
Ad esempio, per cercare un modello setupin un gruppo di file zip nella directory corrente, utilizzare questo comando:
find ./ -iname *zip 2> /dev/null -print0 | xargs -0 zipinfo | grep setup
caution: filename not matched: case1.zip... caution: filename not matched: case348.zipper ogni zip, testato su due sistemi operativi Ubuntu, 11.10 e 12.04.
setupe mette lo stesso errore, anche se funziona così:zipinfo -l * | grep "setup"
Per elencare i file in un archivio zip è possibile utilizzare il seguente comando.
unzip -l
Per grep un archivio compresso è necessario utilizzare le utilità di archivio compresso create per funzionare con quel tipo di formato di archivio.
Per archivi zip:
zipgrep --help
usage: zipgrep [egrep_options] pattern zipfile [members...]
Uses unzip and egrep to search the zip members for a string or pattern.
Per archivi tar:
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'.
Ci sono alcuni altri strumenti che funzionano anche con gli archivi. Puoi eseguire il pipe out messo in grep per fare la stessa cosa.
zcat
zcat my.archive.zip | grep "some text"
Oppure puoi utilizzare la funzionalità di ricerca di questi strumenti
zless
zmore