1.jpg、2.jpg、3.jpg などと呼ばれる何千もの jpg ファイルがあります。それらの範囲を圧縮する必要があり、正規表現でこれを行うことができると思っていましたが、これまでのところ運がありません.
これがコマンドです
zip images.zip '[66895-105515]'.jpg
誰にもアイデアはありますか?
1.jpg、2.jpg、3.jpg などと呼ばれる何千もの jpg ファイルがあります。それらの範囲を圧縮する必要があり、正規表現でこれを行うことができると思っていましたが、これまでのところ運がありません.
これがコマンドです
zip images.zip '[66895-105515]'.jpg
誰にもアイデアはありますか?
正規表現は文字レベルで機能するため、このような数値範囲を正規表現 (数字の範囲、はい、ただし複数桁の数値全体ではない) と一致させることはできないと確信しています。ただし、「seq」コマンドを使用してファイルのリストを生成し、「xargs」を使用してそれらを「zip」に渡すことができます。
seq --format %g.jpg 66895 105515 | xargs zip images.zip
Linux で一連のダミー ファイルを使用してコマンドをテストしたところ、正常に動作しました。
{m..n}
次のように、lsおよびbash range()演算子と組み合わせて使用します。
ls {66895..105515}".jpg" 2>/dev/null | zip jpegs -@
あなたはいくつかのものをパイプする必要があります-ファイルをリストし、正規表現でフィルタリングし、リストされた各ファイルを圧縮します。
ls | grep [66895-10551] | xargs zip images.zip
編集:おっと、複数桁の数字でテストしませんでした。deniswが言及しているように、この方法は機能しません。