Вы можете использовать identify
из imagemagick
, и вы можете использовать следующую команду:
find . -iname "*.jpg" -type f -exec identify -format '%w %h %i' '{}' \; | awk '$1<300 || $2<300'
использование -exec <command> '{}' \;
гарантирует, что ваше имя файла может содержать пробелы, в качестве альтернативы вы можете использовать
find . -iname "*.jpg" -type f | xargs -I{} identify -format '%w %h %i' {} | awk '$1<300 || $2<300'
где -I{}
заботится о том же.
Что мне нравится в identify
том, что вы можете указать формат вывода; в этом случае, '%w %h %i'
который дает ширину, высоту и полный путь к изображению. Тогда awk
выражение сохраняет только те строки, для которых изображение меньше желаемого размера.
Пример вывода:
64 64 ./thumbsup.jpg
100 150 ./photomin.jpg
Редактировать: Если вы хотите только имена файлов (например, для трубопроводов rm
), просто измените $line
в awk
выражении на $3
, тогда будет напечатан только третий столбец.
| awk '$1<300||$2<300'
или| awk '$1<300||$2<300{print $3}'
(когда нужен только 3-й столбец).'%w %h %i\n'
), чтобы он работал на меня.| xargs -I {} mv {} /destination/directory/
Я думаю, что принятый ответ очень хорош, но я хотел добавить другое возможное решение ...
Хотя сейчас я использую
ImageMagick
инструменты чаще всего сам,netpbm
это старый друг для обработки изображений. Вы можете увидеть размер любого формата изображения с помощью команды:Это сгенерирует вывод, который выглядит следующим образом:
Чтобы ответить на вопрос «что следует за каналом?», Я использую
while read
чаще, чем использую,xargs
потому что он более гибкий. Мойnetpbm
ответ на вопрос выглядит так:источник
Это сработало для меня:
Это выходной пример:
./2520161636481000.png 75x75
./2620160819191100.png 75x75
./2420181545550700.png 75x75
источник
Команда
identify
изimagemagick
пакета делает то, что вы хотите:Опять же, вам нужно будет затем использовать
grep
для сортировки размера изображения.Тем не менее, я подозреваю, что если у вас нет очень широкого диапазона размеров изображений, было бы проще просто
find
удалить файлы JPEG ниже заданного размера:(Стоит запустить без
-delete
предварительной проверки, что он не найдет вещи, которые вы хотите сохранить - в противном случае он не будет запрашивать вас перед удалением).источник