Sto cercando un comando terminale per contare il numero di elementi di livello superiore in un archivio ZIP. So che zip -l archive.zipmostrerà il conteggio dei file, ma questo mostra tutti i file, non solo gli elementi di livello superiore. Se archive.zipdecomprimerà quanto segue (* indica il livello superiore)
* Dir1
File1
File2
* Dir2
File3
File4
File5
File6
* Dir3
* File7
* File8
quindi vorrei un programma in uscita 5.
unzip -l archive.zip | grep -v / | wc -l, giusto? Mi dispiace che il mio post originale non fosse chiaro
|wc -l, vedrai i file considerati ed è quelli di livello superiore. C'è un bug (!): Se il percorso dell'archivio contiene un singolo, /questo verrà conteggiato, quindi è necessario un filtro aggiuntivo per escluderlo, ad esempio sostituirlo grep /con grep "^ .*/".
unzip -l archive.zip|grep /|grep -v "/.*/"|wc -l. Il primo filtro mostra solo le righe con i file, il secondo elimina le sottodirectory e il terzo restituisce il conteggio delle righe. Se l'archivio ha percorsi assoluti, dovrai consentire due barre ed eliminarne tre o più.