Я хотел бы отсканировать все изображения в каталоге Linux (рекурсивно в подпапках) и найти изображения с разрешением выше определенного порога (например, с разрешением не менее 800x600 или, если проще, например с шириной более 1000 пикселей) , Затем я хотел бы записать их адрес в файл .txt , сопровождая их разрешение (или [width], [height] для лучшего форматирования).

Как я могу сделать это в скрипте bash? Я должен сканировать миллионы изображений.

1 ответ1

2

Приведенный ниже скрипт bash, использующий утилиту identify ImageMagick, будет рекурсивно искать в указанном каталоге все файлы, заканчивающиеся на .jpg , .jpeg , .png и .gif а затем просматривает изображения, которые имеют размер более 800 x 600. ,

#!/bin/bash

if [ -z $1]; then
  echo -e $0 '[path to search]\nRecursively search the specified directory for images over 800x600'

else

  find $1 \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" \) -type f -exec identify -format '%w %h %i' '{}' \; | awk '$1>800 || $2>600'

fi

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .