さて、ついにそれが起こりました。私のGoogle-fuは私を失敗させました。助けてください...
ディレクトリを通過し、コミック アーカイブ (.cbz ファイル) から情報を取得するバッチ ファイルがあります。
タイトル、ページ数、最後のページの解像度、アーカイブのサイズ、アーティスト名を含む CSV ファイルを生成します。
これは、解像度を除いてすべて正常に機能します。問題なく解決できますが、アーカイブでファイルに特定の方法で名前が付けられている場合にのみ、最後のページの抽出が機能します(ファイルの名前はPage 000で、ファイルの数を数えて1を引きます)。逸脱している場合 (最初のページが 801 ページで、最後のページが 868 ページ)、868 ではなく 068 ページを抽出するように指示しているため、ページの抽出に失敗します。
それで、最後のページの実際の名前を取得するだけで、私はゴールデンだと思いました。
次を使用して、zipファイルの最後のファイル名をgrepしようとしています:
7z l filename | grep -o -P Page\s[0-9]{3}\..*(?!Page\s[0-9]{3}\..*)
しかし、それは私にすべてのファイル名を与えます。
ここに私がgrepしようとしている出力があります:
7-Zip [64] 9.38 beta Copyright (c) 1999-2014 Igor Pavlov 2015-01-03
Listing archive: Christian Knockers {Pages 0801-0868} [Dark Lord].cbz
--
Path = Christian Knockers {Pages 0801-0868} [Dark Lord].cbz
Type = zip
Physical Size = 224551692
Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
2020-11-19 15:51:25 ....A 3589432 3589432 Page 801.png
2020-11-19 16:09:29 ....A 3455981 3455981 Page 802.png
2020-11-26 14:48:47 ....A 3017353 3017353 Page 803.png
2020-11-26 15:02:27 ....A 3627637 3627637 Page 804.png
2020-11-26 15:13:05 ....A 3212321 3212321 Page 805.png
<snip>
2021-03-19 15:37:49 ....A 3106721 3106721 Page 864.png
2021-03-19 15:37:19 ....A 2619460 2619460 Page 865.png
2021-03-19 15:37:21 ....A 3063014 3063014 Page 866.png
2021-03-19 15:36:38 ....A 2423233 2423233 Page 867.png
2021-03-19 15:36:41 ....A 2908774 2908774 Page 868.png
------------------- ----- ------------ ------------ ------------------------
2021-03-19 15:38:54 224542422 224542422 68 files
Kernel Time = 0.015 = 18%
User Time = 0.000 = 0%
Process Time = 0.015 = 18% Virtual Memory = 3 MB
Global Time = 0.084 = 100% Physical Memory = 7 MB
私は正規表現でどんどん良くなっていますが、私が使用したグループだけがグループをキャプチャしています。私がグーグルで検索したことは、否定的な先読みを言い続けていますが、運がありません。
どんな助けでも大歓迎です!