Saya mencari perintah terminal untuk menghitung jumlah item tingkat atas dalam arsip ZIP. Saya tahu itu zip -l archive.zip
akan menunjukkan jumlah file, tetapi ini menunjukkan semua file, bukan hanya item tingkat atas. Jika archive.zip
akan unzip ke berikut ini (* menunjukkan tingkat atas)
* Dir1
File1
File2
* Dir2
File3
File4
File5
File6
* Dir3
* File7
* File8
maka saya ingin program untuk keluaran 5
.
Ini menunjukkan jumlah item level non-top. Tapi saya kira saya bisa mengurangi dari output
—
BallpointBen
unzip -l archive.zip | grep -v / | wc -l
, kan? Maaf postingan asli saya tidak jelas
Jika Anda kehilangan,
—
AFH
|wc -l
Anda akan melihat file dipertimbangkan, dan itu yang tingkat atas. Ada bug (!): Jika jalur arsip berisi satu /
ini akan dihitung, jadi Anda perlu filter tambahan untuk mengecualikannya, misalnya ganti grep /
dengan grep "^ .*/"
.
unzip -l archive.zip|grep /|grep -v "/.*/"|wc -l
. Filter pertama hanya menampilkan baris dengan file, yang kedua menghilangkan subdirektori dan yang ketiga mengembalikan jumlah baris. Jika arsip memiliki jalur absolut, Anda harus mengizinkan dua garis miring dan menghilangkan tiga atau lebih.