• Авторизация


про linux. 07-04-2014 16:33 к комментариям - к полной версии - понравилось!


Задача была - наделать миниатюр в папке с фотографиями.
Пользоваться редакторами - не наш метод, жизнь и так коротка.
Поэтому -
convert file.jpg - resize 200x300 out.jpg
Но писать это для каждого файла - тоже не наш метод. Делать в баше - можно (я тут вроде недавно писал,как), но
если имя файла содержит пробел, то это не работает.

Поэтому делал так - сначала файл, содержащий имена файлов в каталоге командой

>ls *.jpg>list.txt

потом написал перловый скриптик:
#!/usr/bin/perl
open(INL,"<","list.txt"); #открываем файл на чтение
while()
{
chomp; #убираем концевые пробелы
$line=$_; #Знаю, что ни к чему, но хозяин, как говорится, барин

$line=~s/ /\\ /g; # добавляем к пробелам знак \, чтоб не смущать оболочку
$line=~s/\(/\\(/g; # то же с открывающими скобками
$line=~s/\)/\\)/g; # и закрывающими

@cps=split(/\.jpg/,$line); # вычленяем название файла, отбрасывая расширение
print "convert $line -resize 200x300 $cps[0]_mini.jpg\n "; # пишем команду для оболочки
}
Скрипт, соответственно, делается исполняемым, и делаем что нам нужно командой, направляющей выхлоп скрипта в оболочку:

>makemini.pl | sh

Получаем, соответственно, к исходным файлам их уменьшенные копии с приставкой _mini
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник про linux. | Affrikan - Дневник Affrikan | Лента друзей Affrikan / Полная версия Добавить в друзья Страницы: раньше»