Puede usar identify
desde imagemagick
, y puede usar el siguiente comando:
find . -iname "*.jpg" -type f -exec identify -format '%w %h %i' '{}' \; | awk '$1<300 || $2<300'
el uso de -exec <command> '{}' \;
asegura que su nombre de archivo pueda tener espacios en ellos, alternativamente puede usar
find . -iname "*.jpg" -type f | xargs -I{} identify -format '%w %h %i' {} | awk '$1<300 || $2<300'
donde -I{}
se encarga de lo mismo.
Lo que me gusta identify
es que puedes especificar el formato de salida; en este caso, '%w %h %i'
que proporciona el ancho, la altura y la ruta completa de la imagen. Luego, la awk
expresión solo mantiene aquellas líneas para las cuales la imagen es más pequeña que el tamaño deseado.
Ejemplo de la salida:
64 64 ./thumbsup.jpg
100 150 ./photomin.jpg
Editar: si solo desea los nombres de archivo (por rm
ejemplo, para canalizar ), simplemente cambie $line
la awk
instrucción a $3
, solo imprimirá la tercera columna.
| awk '$1<300||$2<300'
o| awk '$1<300||$2<300{print $3}'
(cuando solo se necesita la tercera columna).