主に.cbz
フォーマット(単なるZipアーカイブですが、派手な名前が付いています)で、コンピュータに保存するコミックのコレクションがあります。最近、特定のコミックシリーズの表紙のコラージュを作成することにしました。そのためには、コミックブックアーカイブの最初のファイルが必要です。
問題の内訳は次のとおりです。
.cbz
ファイル。<series name> #<issue number>
のような名前があり、問題番号は1から75になります(1つの問題: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;
script.sh
などのファイルに保存し、コミックと同じディレクトリに配置します。次に、実行権限を付与します。
chmod +x script.sh
そしてそれを実行します:
./script.sh
zipinfo
を使用して、Zipアーカイブ内のすべてのファイルのリストを取得できます。
zipinfo -2 mycomic.cbz
次のようなものを出力します。
First file within the archive.jpg
Second file within the archive.jpg
...
次に、awk 'NR==1 { print }'
を使用して、First file within the archive.jpg
という最初のファイル名を返すことができます。
このファイルを抽出するには、次のようなunzip
を使用できます。
unzip -j mycomic.cbz "First file within the archive.jpg"