ディレクトリとサブディレクトリのすべての画像をサイズ変更しようとしています。ここから得たスクリプトがあります。小さなファイルを無視して大きなファイルのサイズを変更するには、mogrifyを使用します。
次のように調整しました。
identify -format '%w %h %i\n' ./*.jpg |
awk '$1 > 1200 || $2 > 1200 {sub(/^[^ ]* [^ ]* /, ""); print}' |
tr '\n' '\0' |
xargs -0 mogrify -resize '1200x1200'
ただし、現在のディレクトリと.jpg拡張子のみを処理します。 - 大文字は無視します。 - .JPG
調整しようとしましたが、あまり進展はありませんでした。
答え1
あなたはidentify
組み合わせることができますfind
、例えば:
find . -type f -iname "*.jpg" -exec identify -format '%w %h %i\n' {} \;
identify
名前が.jpgで終わる(大文字と小文字を区別しない)、繰り返し見つかったすべてのファイルに対してコマンドを実行します。
完全な例を使用して、以下を実行します。
find . -type f -iname "*.jpg" -exec identify -format '%w %h %i\n' {} \; |
awk '$1 > 1200 || $2 > 1200 {sub(/^[^ ]* [^ ]* /, ""); print}' |
tr '\n' '\0' |
xargs -0 mogrify -resize '1200x1200'