我有很多压缩文件,其中每个文件都包含目录中的json文件和txt文件。 我想在目录中的所有压缩文件中找到json文件的总数。
要钻取它,我有很多这样的目录 如何查找所有目录中所有压缩文件中的json文件总数?
答案 0 :(得分:2)
通过find
命令,您可以轻松遍历每个目录,并匹配命名模式,例如*.zip
。
当您浏览find
返回的列表(此处for
循环将会很好)时,您需要列出每个归档中的文件(您不必提取文件,这很好)当你列出文件时,你可以做一个简单的grep
找到.json
模式和输出到wc -l
的管道,它会给你一个“行数” - 在这种情况下,它将代表.json
个文件的数量。
在每次迭代中,您都会计算并将其添加到“总”计数中,然后可以输出。
扩展的样本将是:
total=0;
for file in `find . -name '*.zip'`; do
count=`unzip -l $file | grep '.json' | wc -l`;
total=`expr $total + $count`;
done;
echo "Total Json Files: $total";
此示例假设您使用zip
归档文件。如果您使用tar
之类的内容,则需要使用其文件列表参数(tar -t
)。
答案 1 :(得分:1)
zgrep就像grep一样工作,但处理zip文件。在linux上它是一个shell包装器,在bsd和osx上是一个二进制文件。