我有一个zip文件夹,里面有5个文本文件。我必须在不解压缩zip文件夹的情况下检查每个文件的行数。
我尝试了zcat file.zip | wc -l
但它只给出了第一个文件的计数。
你们能帮我得到下面提到的结果吗:
File_Name Rowcount
file1 100
file2 100
file3 100
file4 100
file5 100
如果您的文件是压缩的tar
存档,那么您只需遍历存档中的每个文件名即可获取每个文件名中的行数。例如,如果存档包含:
$ tar -tzf /tmp/tmp-david/zipfile.tar.gz
yon.c
yourmachinecode.s
zeroonect.c
zeros
zz
您可以使用以下命令循环访问文件名:
$ for i in $(tar -tzf /tmp/tmp-david/zipfile.tar.gz); do
printf "%8d lines - %sn" $(wc -l <"$i") "$i"
done
61 lines - yon.c
5 lines - yourmachinecode.s
63 lines - zeroonect.c
0 lines - zeros
1 lines - zz
您可以根据需要保留每个计数的总和增量,以获得总计。
如果您的文件是.zip (MS-DOS( 存档,那么您可以做同样的事情,但是从unzip -l
输出中解析单个文件名需要更多的工作,例如
$ unzip -l /tmp/tmp-david/zipfile.zip | grep -v '^-' |
tail -n+3 | head -n-1 | awk '{print $4}'
(您将在命令替换中使用上述内容来驱动for
循环(