Conte o número de itens de nível superior no arquivo ZIP

3

Estou procurando um comando de terminal para contar o número de itens de nível superior em um arquivo ZIP. Eu sei que zip -l archive.zip mostrará a contagem de arquivos, mas isso mostra todos os arquivos, não apenas itens de nível superior. Se archive.zip irá descomprimir para o seguinte (* indica o nível superior)

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

eu gostaria que um programa gerasse 5 .

    
por BallpointBen 14.03.2017 / 17:09

1 resposta

0

Inspirou-se no AFH para usar esta solução

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

O que faz:

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
    
por 14.03.2017 / 18:04