Я хочу повернуть все изображения в каталоге, которые соответствуют шаблону.
Пока что у меня есть:
for file in `ls /tmp/p/DSC*.JPG`; do
convert $file -rotate 90 file+'_rotated'.JPG
done
но что не дает выхода?
источник
Я хочу повернуть все изображения в каталоге, которые соответствуют шаблону.
Пока что у меня есть:
for file in `ls /tmp/p/DSC*.JPG`; do
convert $file -rotate 90 file+'_rotated'.JPG
done
но что не дает выхода?
Есть довольно много проблем с вашим кодом. Прежде всего, вы анализируете ls, что является плохой идеей . Вы также должны ссылаться на переменную так, $file
как вы указали, и вы также должны заключить ее в кавычки, чтобы она не разбивалась на пробелы. Вы заявляете, num
но это никогда не используется. Более безопасный способ был бы:
find /tmp/p/ -name "DSC*.JPG" | while IFS= read -r file; do
convert "$file" -rotate 90 "$file"_rotated.JPG
done
Это по-прежнему будет иметь проблемы, если ваши файлы содержат символы новой строки, но, по крайней мере, не прервется, если ваш путь будет содержать пробелы.
Если все файлы находятся в одном и том же каталоге, его можно еще больше упростить с помощью глобализации. Вы также можете использовать расширение параметра для создания foo_rotated.JPG1
вместо foo.JPG_rotated.JPG
:
for file in /tmp/p/DSC*.JPG; do
convert "$file" -rotate 90 "${file%.JPG}"_rotated.JPG
done
original_filename.JPG_rotated.JPG"
. добавление"${file%.JPG}"_rotated.JPG
будет более подходящим imho. Ура!mogrify -rotate 90 *.jpg
Лучший One-Liner для поворота всех изображений с помощью imagemagickmogrify -rotate 90 /tmp/p/DSC*.JPG
будет фактически вращать все,.JPG
начиная сDSC
вp
каталогеMogrify (часть imagemagick ) отличается от того,
Convert
что он изменяет оригинальный файл http://www.imagemagick.org/script/mogrify.phpисточник
Простой метод с использованием PE (расширение параметров)
источник
bash
конкретного, это совершенно стандартный синтаксис POSIX sh.Не разбирайте
ls
и здесьls
не требуется. Кроме того, вы должны заключать в кавычки ваши переменные в случае, если они содержат пробелы.источник
Не имиджмагическое решение, а
повернет все изображения, заканчивающиеся на .JPG, на 90 градусов. Это хороший лайнер.
источник
Мне нужно было ссылаться на файл как
$file
, т.е.источник
Вы можете скопировать / вставить этот код в Ubuntu и сохранить его как «rotate.sh»
После сохранения этого файла запустите его из терминала, используя
./rotate.sh folder_containing_images
источник