Nella mia riga di comando bash, quando uso unzip -l test.zip
ottengo l'output in questo modo:
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
Ma sono interessato solo dalle righe che contengono i dettagli del file.
Ho provato a fare il filtraggio usando grep in questo modo:
unzip -l test.zip | grep -v Length | grep -v "\-\-\-\-" | g -v Archive | grep -v " files"
Ma è lungo e soggetto a errori (ad es. Un nome di file in questo elenco verrà eliminato)
Esistono altre opzioni con unzip -l (ho controllato la pagina man di decompressione e non ne ho trovate) o un altro strumento per farlo?
Per me è importante non decomprimere realmente l'archivio ma solo cercare quali file sono all'interno.
grep
può essere rifattorizzata in uno script Awk, di solito con una precisione molto migliorata.awk 'NR >3 { if (/^ *---/) exit 0; print }'
taglierebbe le prime tre righe e il piè di pagina e sarebbe anche a portata di mano per estrarre facilmente solo il nome del file (suggerimento:)print substr($0, 29)
.