
たとえば、画像が 50 枚あり、そのうちの幅が最も大きいものを知りたいとします。どのコマンドを使用すればよいでしょうか?
答え1
このコマンド(ImageMagick から識別)は、最大幅の画像を出力します。
identify -format "%w %h %f\n" *.png | sort -n -r -k 1 | head -n 1
-format "%w %h %f = 幅、高さ、ファイル名
結果: wh image.png
ソース: フォルダー内の最大画像サイズを検索: https://unix.stackexchange.com/questions/155544/find-largest-image-dimensions-in-folder
画像が同じフォルダーにない場合は、ターミナルを開き、サブディレクトリを含むフォルダーからこのスクリプトを実行します。
find . -iname "*.png" -type f -exec identify -format "%w %h %f\n" '{}' \; | sort -n -r -k 1 | head -n 1
注意: 同じ幅の画像が複数ある場合、表示される結果は 1 つだけです。幅で並べ替えたすべての画像のリストを表示するには、前のコマンドから head -n 1 を削除します。
答え2
このコマンドは、現在のディレクトリ内の画像の幅を検索します。
imageinfo をインストールする前に、次の操作を行う必要があります。
sudo apt install imageinfo
次にこのコマンドを入力します
find . -maxdepth 1 -type f -iregex ".*/.*\.\(jpg\|jpeg\|png\|tiff\|bmp\svg\)" \
-exec bash -c "echo -ne {}' '; imageinfo --width {}; echo " \;\
| sort -k2 -n
最大のものだけが必要な場合は、上記のコマンドにパイプを追加します。
... | tail -n 1