Прошу помощи вот в таком деле.
Я коллекционирую картинки с одного сайта, но на них всегда стоит копирайт, 30 пикселей снизу. Я иногда эти картинки размещаю на других ресурсах, а так как их скапливается очень много, вручную обрезать надоело очень быстро. Поэтому я решил написать скрипт для этого дела. Скрипт, помещенный в папку с картинками, по запуску создает на каталог выше папку с датой запуска, берет все картинки по очереди из папки и при помощи imagemagiсk отрезает им 30 нижних пикселей. Во избежание путаницы, вычленяется имя файла и спереди дописывается "cropped" (обрезанный). После обработки изначальные изображения удаляются.
Все работает, но проблема в том, что имя файла я вычленяю при помощи обрезки cut по заданному номеру символа. Соответственно, работать скрипт будет без изменений только на моем сферическом коне в вакууме. Если я захочу поделиться с кем-то или даже решу перенести папку с изображениями в другое место, надо будет считать символы и править вручную.
Я не настолько опытен, и не особо знаком с обработкой текстовых строк, поэтому хотел бы попросить совета, как сделать этот момент правильней. Вот фрагмент, где вычленяется имя.
for image in $dir/*.jpg
do
name=`echo $image | cut -c 37-`
if [ ! -e ../$date/cropped-$name ]
then
convert -gravity South -chop 0x30 $image ../$date/cropped-$name
... и т.д.
done