gpt4 book ai didi

linux - `.zip` 文件夹中每个文件的行数

转载 作者:太空宇宙 更新时间:2023-11-04 04:32:46 24 4
gpt4 key购买 nike

我有一个 zip 文件夹,里面有 5 个文本文件。我必须在不解压 zip 文件夹的情况下检查每个文件的行数。

我尝试了zcat file.zip | wc -l 但它只给出第一个文件的计数。

你们能帮我得到如下结果:

File_Name Rowcount
file1 100
file2 100
file3 100
file4 100
file5 100

最佳答案

如果您的文件是 gzip 压缩的 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 - %s\n" $(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循环)

关于linux - `.zip` 文件夹中每个文件的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49805957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com