根据内容代码解压/提取 zip 文件的 Shell 脚本

根据内容代码解压/提取 zip 文件的 Shell 脚本

我每天都有多个 zip 文件,但文件内容根据每个文件的第一个代码而不同。因此,根据代码,我需要选择要处理的文件。如果 zip 文件中的代码是 100,我需要为开发服务器处理它。

我怎样才能从以下 4 个文件中选择 100 个代码文件并仅处理这些文件而不解压所有文件,并且仅处理当前日期的 zip 文件,而不是所有文件?

abc-20192010_185324.zip
abc-20192010_143564.zip
abc-20192010_196786.zip
abc-20192010_164564.zip

内容如下:

abc-20192010_185324.zip
100_abc
100_def
100_xyz

abc-20192010_185324.zip
101_abc
101_def
101_xyz

abc-20192010_185324.zip
102_abc
102_def
102_xyz

abc-20192010_185324.zip
103_abc
103_def
103_xyz

答案1

我不太确定我是否理解了您的问题。同一个 zip 文件中是否存在多种类型的文件?您的示例对于每个代码文件编号都有相同的文件名。

类似这样的事情可能会帮助你找到你正在寻找的方向:

for FILE in $(find ./*.zip -type f -ctime 0); do unzip -f "$FILE" 100*; done

find 将在今天创建的当前目录中查找 zip 文件,unzip 将尝试从找到的 zip 文件中提取以 100 开头的文件(注意:-f 将在没有提示的情况下覆盖现有文件)。

相关内容