Использование 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