С помощью цикла for
:
for d in AA_BB_CC_rier*; do
[ -d "$d" ] && \
mv -v -- "$d/$d" "$d/${d/rier/river}" && \
mv -v -- "$d" "${d/rier/river}"
done
for
перебирает все элементы, начинающиеся с AA_BB_CC_rier
. [ -d "$d" ]
проверяет, является ли это каталогом. mv
переименовывает файл в каталоге. mv
переименовывает сам каталог. Похоже, вы ищете ImageMagick . Обычно он устанавливается по умолчанию во многих наиболее популярных дистрибутивах. Если нет, вы можете использовать менеджер пакетов вашего дистрибутива для его установки.
$ sudo yum install ImageMagick
-or-
$ sudo apt-get install ImageMagick
ImageMagick включает множество инструментов CLI, одним из которых является convert
. Используя convert
, вы можете поворачивать изображения следующим образом:
$ convert -rotate "90" in.jpg out.jpg
Есть еще много примеров использованияconvert
здесь . Остальные инструменты, включенные в ImageMagick, могут выполнять редактирование изображений, масштабирование и добавление аннотаций.
Другой метод поворота изображений, которые обычно немного смещены по вертикали или горизонтали, называется устранением перекоса.
Из интерактивной справки по параметрам командной строки ImageMagick:
-deskew threshold{%}
straighten an image. A threshold of 40% works for most images.
Use -set option:deskew:auto-crop true | false to auto crop the image.
Чтобы использовать эту опцию, вы должны использовать convert
инструмент командной строки, который является еще одним из инструментов интерфейса командной строки ImageMagicks:
$ convert skewed.jpeg -deskew 40% not_skewed.jpg
Недавно мне нужно было оцифровать набор из более чем 500 фотографий, сделанных пленочными камерами. И необходимо автоматически -подрезать и автоматически -повернуть их все.
Те параметры, которые у меня работали лучше:
convert myFile.jpg -fuzz 30% -trim +repage -deskew 40% cropped_file.jpg
А вот если хотите применить ко всей папке:
mkdir cropped
for i in `ls *.JPG`; do convert $i -fuzz 30% -trim +repage -deskew 40% cropped/`basename $i JPG`jpg; done