про 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