2

さて、ついにそれが起こりました。私の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

私は正規表現でどんどん良くなっていますが、私が使用したグループだけがグループをキャプチャしています。私がグーグルで検索したことは、否定的な先読みを言い続けていますが、運がありません。

どんな助けでも大歓迎です!

4

1 に答える 1