2

1.jpg、2.jpg、3.jpg などと呼ばれる何千もの jpg ファイルがあります。それらの範囲を圧縮する必要があり、正規表現でこれを行うことができると思っていましたが、これまでのところ運がありません.

これがコマンドです

 zip images.zip '[66895-105515]'.jpg

誰にもアイデアはありますか?

4

3 に答える 3

6

正規表現は文字レベルで機能するため、このような数値範囲を正規表現 (数字の範囲、はい、ただし複数桁の数値全体ではない) と一致させることはできないと確信しています。ただし、「seq」コマンドを使用してファイルのリストを生成し、「xargs」を使用してそれらを「zip」に渡すことができます。

seq --format %g.jpg 66895 105515 | xargs zip images.zip

Linux で一連のダミー ファイルを使用してコマンドをテストしたところ、正常に動作しました。

于 2012-05-17T11:10:02.137 に答える
5

{m..n}次のように、lsおよびbash range()演算子と組み合わせて使用​​します。

ls {66895..105515}".jpg" 2>/dev/null | zip jpegs -@
于 2012-05-17T11:02:49.553 に答える
2

あなたはいくつかのものをパイプする必要があります-ファイルをリストし、正規表現でフィルタリングし、リストされた各ファイルを圧縮します。

ls | grep [66895-10551] | xargs zip images.zip

編集:おっと、複数桁の数字でテストしませんでした。deniswが言及しているように、この方法は機能しません。

于 2012-05-17T10:59:24.330 に答える