Подсчитать количество предметов верхнего уровня в ZIP-архиве

Я ищу команду терминала для подсчета количества элементов верхнего уровня в ZIP-архиве. я знаю это zip -l archive.zip покажет количество файлов, но это покажет все файлы, а не только элементы верхнего уровня. Если archive.zip разархивирует к следующему (* указывает на верхний уровень)

* Dir1
    File1
    File2
* Dir2
    File3
    File4
    File5
    File6
* Dir3
* File7
* File8

тогда я хотел бы программу для вывода 5,

1 ответ

Решение

Для вдохновения воспользовался AFH

zipinfo -1 archive.zip | 
    egrep '^[^/]+/?$' | 
    egrep -v '__MACOSX' | 
    wc -l |
    awk '{$1=$1};1'

Что оно делает:

Get list of files in archive
Filter for top-level files or dirs; must either contain no '/' or end in '/'
Remove lines containing __MACOSX (for archives created on a Mac)
Get line count
Remove trailing whitespace; http://unix.stackexchange.com/a/205854/169465
Другие вопросы по тегам