How do I get a result with file names at the beginning and the total number of files? When I run the command line below, it only shows the number of files but not file names.
I would like to get the zip file name and the number of documents in zip. Thanks
Desired output:
IAD1.zip 30000 files
IAD2.zip 24000 files
IAD3.zip 32000 files
.....
Command line:
zipinfo IAD${count}.zip |grep ^-|wc -l >>TotalCount.txt
With the command above, the result shows the number of documents in zip files, but not file names:
30000
24000
32000
.....
zipinfo -h <file name> | tr '\n' ':' | awk -F':' '{print $2 , $5 , "files"}'
explanation:
zipinfo -h
-- list header line. The archive name, actual size (in bytes) and total number of files is printed.
tr '\n' ':'
-- Replace new line with ":"
awk -F':' '{print $2 , $5 , "files"}'
-- Read file as ":" delimited and print 2nd and 5th field
Demo:
:>zipinfo test.zip
Archive: test.zip
Zip file size: 2798 bytes, number of entries: 7
-rw-r--r-- 3.0 unx 18 tx stor 20-Mar-10 13:00 file1.dat
-rw-r--r-- 3.0 unx 32 tx defN 20-Mar-10 13:00 file2.dat
-rw-r--r-- 3.0 unx 16 tx stor 20-Mar-10 12:26 file3.dat
-rw-r--r-- 3.0 unx 1073 tx defN 20-Mar-12 05:24 join1.txt
-rw-r--r-- 3.0 unx 114 tx defN 20-Mar-12 05:25 join2.txt
-rw-r--r-- 3.0 unx 254 tx defN 20-Mar-11 09:39 sample.txt
-rw-r--r-- 3.0 unx 1323 bx stor 20-Mar-14 09:14 test,zip.zip
7 files, 2830 bytes uncompressed, 1746 bytes compressed: 38.3%
:>zipinfo -h test.zip | tr '\n' ':' | awk -F':' '{print $2 , $5 , "files"}'
test.zip 7 files