Dans ma ligne de commande bash, lorsque j'utilise, unzip -l test.ziple résultat est le suivant:
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
Mais je ne suis intéressé que par les lignes contenant les détails du fichier.
J'ai essayé de faire un filtrage en utilisant grep comme ceci:
unzip -l test.zip | grep -v Length | grep -v "\-\-\-\-" | g -v Archive | grep -v " files"
Mais il est long et sujet aux erreurs (par exemple, un nom de fichier, les archives de cette liste seront supprimées)
Existe-t-il d'autres options avec unzip -l (j'ai vérifié la page de manuel unzip et n'en ai trouvé aucun) ou un autre outil pour le faire?
Il est important pour moi de ne pas décompresser l'archive mais de regarder quels fichiers se trouvent à l'intérieur.
greppeut être refactoré dans un script Awk, généralement avec beaucoup plus de précision.awk 'NR >3 { if (/^ *---/) exit 0; print }'pourrait couper les trois premières lignes ainsi que le pied de page, et serait également à portée de main pour extraire facilement que le nom du fichier (indice:)print substr($0, 29).