“.zip”文件夹中每个文件的行计数



我有一个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循环(

相关内容

  • 没有找到相关文章

最新更新