Gal*_*yan 3 command-line archive files batch
我在我的电脑上存储了一系列漫画书,主要是.cbz格式(这只是一个 ZIP 档案,但有一个花哨的名字)。最近,我决定制作一个特定漫画系列封面的拼贴画,为此我需要漫画书档案中的第一个文件。
这是问题的细分:
.cbz单个文件夹中有75个文件;<series name> #<issue number>,其中问题编号从 1 到 75(一个问题:它不像 01、02、03 等,因此在那里排序可能会造成混淆);
<issue name> <3-digit issue number with preceding zeros> .zip如有必要,档案可以重命名,但我知道 7Zip(和其他一些档案,但不是 unrar)可以很好地处理 CBZ;我需要的:
我拥有的:
我该如何做到这一点?什么命令会将文件夹中每个存档中的第一个文件提取到同一文件夹?
如果您不需要重命名输出文件,那么我建议如下:
#!/bin/bash
for file in *.cbz
do
cover="`zipinfo -2 "$file" | awk 'NR==2 {exit} 1'`"
unzip -j "$file" "$cover"
done;
Run Code Online (Sandbox Code Playgroud)
将其保存在一个类似的文件中script.sh,并将其放入与您的漫画相同的目录中。然后给它执行权限:
chmod +x script.sh
Run Code Online (Sandbox Code Playgroud)
并运行它:
./script.sh
Run Code Online (Sandbox Code Playgroud)
我们可以使用以下命令获取 zip 存档中所有文件的列表zipinfo:
zipinfo -2 mycomic.cbz
Run Code Online (Sandbox Code Playgroud)
它输出类似于:
First file within the archive.jpg
Second file within the archive.jpg
...
Run Code Online (Sandbox Code Playgroud)
然后使用awk 'NR==1 { print }'我们可以返回第一个文件名,即:First file within the archive.jpg.
现在要提取这个文件,我可以使用unzip类似的:
unzip -j mycomic.cbz "First file within the archive.jpg"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1874 次 |
| 最近记录: |