我有一堆 zip 文件,里面有几个级别的 zip 文件。
我只想提取与此模式匹配的文件:“_dnbr6.tif”,它们可以位于 zip/目录层次结构的不同级别。
一个额外的提示是,我要查找的文件位于名为“fire_bundle”的目录/zip 文件(zip 文件内)中。不同的 zip/目录中的大小写会发生变化。
如何在不提取每个嵌套 zip 文件的所有文件的情况下做到这一点?
我想这个想法是:
迭代每个 zip 文件,列出其中的所有文件,如果我的文件模式匹配,则将其提取。
如果没有,请匹配我的 zip 模式 (fire_bundle) 并仅提取该 zip 文件并递归查找我的文件模式(列出该 zip 内的文件等)
我仍然不知道如何进行递归部分,因此我们将不胜感激。
来自
unzip
手册页:
文件] 要处理的存档成员的可选列表,以空格分隔。 (使用定义的 VMSCLI 编译的 VMS 版本必须用逗号分隔文件。请参阅下面选项中的 -v。)正则表达式(通配符)可用于匹配多个成员;往上看。再次强调,一定要引用否则会被操作系统扩展或修改的表达式。
所以,你可以使用通配符,只要你转义它们即可。