Найти в Дзене
Groul666 - WebDev

(Заметка) Команды Linux для массовой работы с изображениями с помощью sed и convert

Оглавление

Использование sed + convert для обработки изображений

Довольно часто при работе приходиться массово править изображения. Оставляю наиболее часто используемые мной команды.

Сначала необходимо перейти в каталог с изображениями с помощью консольной команды: cd folder

Замена символов в названии по вхождению строки

В данном примере для всех файлов с расширением "jpg" меняет сивол "-" на "_"

for i in *.jpg; do k=`echo ${i}|sed s/'-'/'_'/g`; mv "${i}" ${k}; done

Замена символов в названии регулярному выражению (regexp)

Переименовать изображения, взяв первую часть до символа "_", а остальное отбросить

for i in *.jpg; do k=`echo ${i}|sed s/'^\([A-Z0-9]\+\)_\(\+\)'/'\1.jpg'/g`; mv "${i}" ${k}; done

Массовое изменение размера изображения

Предварительно должен быть установлен imagemagick для вашего Linux дистрибутива. Массовый ресайз изображений 1600px по ширине и 1600px по высоте:

for i in `ls`; do convert -resize '1600x1600' -quality 65 $i $i; done

Перемещение файлов из вложенных папок в определенную папку

from_folder - в какой папке искать, to_folder - в какую папку переместить

find from_folder -type f -print0 | xargs -0 mv -t to_folder

Изменение расширения файлов из png в jpg

for i in *.png ; do convert "$i" "${i%.*}.jpg" ; done