Puede usar identifydesde 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 identifyes 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 awkexpresió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 rmejemplo, para canalizar ), simplemente cambie $linela awkinstrucció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).'%w %h %i\n') para que funcione para mí.| xargs -I {} mv {} /destination/directory/Creo que la respuesta aceptada es muy buena, pero quería agregar otra posible solución ...
Aunque uso las
ImageMagickherramientas con mayor frecuencia ahora mismo, soynetpbmun viejo amigo para procesar imágenes. Puede ver el tamaño de cualquier formato de imagen con el comando:Esto generará una salida similar a:
Para responder a la pregunta "¿qué sigue después de la tubería?", Uso
while readmás seguido de lo que usoxargsporque es más flexible. Minetpbmrespuesta a la pregunta se ve así:fuente
Esto funcionó para mí:
Esta es la muestra de salida:
./2520161636481000.png 75x75
./2620160819191100.png 75x75
./2420181545550700.png 75x75
fuente
El
identifycomando delimagemagickpaquete hace lo que quieres:Una vez más, deberá utilizar
greppara ordenar el tamaño de la imagen.Sin embargo, sospecho que a menos que tenga un rango muy amplio de tamaños de imagen, sería más fácil usarlo
findpara eliminar archivos JPEG por debajo de un tamaño determinado:(Vale la pena ejecutarlo sin
-deletecomprobar primero que no encuentra las cosas que desea conservar; de lo contrario, no le preguntará antes de eliminarlo).fuente