Войти

Или войди с помощью

Учимся работать с Automator. Умное переименование

Виктор Колышев avatar |
Учимся работать с Automator. Умное переименование

Продолжаем рассматривать примеры использования Automator в повседневной жизни.
В первой статье в комментариях был задан вопрос: как сделать автоматической переименование файлов на основании имени папки.

ar_comment

Попробуем решить данную задачу максимально красиво.

Задача

Произвести автоматическое переименование файлов в папке, проигнорировав предыдущее имя. В качестве нового имени использовать название папки и инкрементальный индекс.

Для решения задачи потребуются следующие компоненты:

  • Установить значение переменной
  • Получить значение переменной
  • Запустить shell-скрипт
  • Получить содержимое папок
  • Переименовать объекты Finder

Я помню, что обещал не лезть в дебри скриптования – к сожалению, без этого задачу решить не получится. Но команда будет короткой, а я подробно объясню, что она делает и как работает.

Начинаем как всегда, с создания нового автомат — Действие папки. Затем добавляем компоненты, для упрощения, вставляю их прямые названия без склонений.

  1. Установить значение переменной. Указываем имя Путь к папке.
  2. Запустить Shell-скрипт. В нем пишем: echo ${1##*/} и не забываем проставить опцию: Передать ввод → как аргументы
  3. Установить значение переменной. Создаем новую переменную Имя папки, которой будет присвоен результат работы из п.2
  4. ВНИМАНИЕ Получить значение переменной, в этом пункте обязательно выставляем параметр: Игнорировать входные данные этого действия.
  5. Получить содержимое папок
  6. Переименовать объекты Finder. Так как нам не требуется сохранять прошлое имя и цель стоит в построение последовательности имен, то выбираем пункт: Сделать последовательным. После чего получим интерфейс, где требуется указать новое имя, в него подставляем нашу переменную Имя папки, а дальше все интуитивно понятно.

ar_workflow

Теория

Теперь пройдем по неявным местам. Сделаем это в формате вопрос/ответ.

Q. Зачем усложнять и делать две разных переменных, да еще и обрабатывать первую скриптом.

A. Если попробовать использовать переменную Путь к папке, то система её возвращает не просто как имя, например Кафе, а в виде полного пути /Users/iPhones/Desktop/Кафе, что не очень подходит в качестве имени для файлов. Но и это еще не все, при непосредственном переименовании происходит трансляция данного пути во внутренний формат операционной системы, итоговое имя примет вид: $(B1421039-E0DA–4111-A00D-DF47E1ADF07)_01.jpg.Поэтому мы вынуждены использовать вторую переменную и скрипт.

Q. Что за команда echo ${1##*/}

A. Команда echo – обозначает вывод значения на экран, в нашем случае оно сразу попадает в переменную. Если бы мы написали:

echo $1

то в переменную записался бы полный путь, полученный ранее, но нам требовалось получить имя папки. Для этого мы использовали модификаторы, позволяющие работать с переменными.

Конкретно, двойной ##, — удаляющий самую длинную часть строки, предшествующую шаблону. А шаблоном в нашем случае выступает чаcть */, обозначающая любые символы, в любом количестве, перед символом косой черты.

Примеры:

$A = /User/iPhones/Desktop/Кафе
Обозначаем переменную, в нашем случае используется $1, так как она получена автоматически из прошлого действия автоматора

$ echo ${A}
/User/iPhones/Desktop/Кафе
простой вывод значения, без обработки

$ echo ${A#i}
Phones/Desktop/Кафе
просим вывести всё, что следует после первого вхождения буквы i

$ echo ${A#iP}
hones/Desktop/Кафе
аналогично, но обратите внимание, что удаляется всё что было до совпадения, в том числе и оно само

$ echo ${A#*/}
User/iPhones/Desktop/Кафе
очень похоже на наш вариант, отсчет идет сначала строки

$ echo ${A##*/}
Кафе
наш случай, отсекаем все лишнее левее символа косой черты, анализ начинается с конца строки

Надеюсь, понимание данной команды позволит вам более смело реализовывать собственные потребности. И не забываем, данное действие можно назначить на любую папку, через контекстное меню и выбор соответствующей службы.

Заключение

Сегодня мы ступили на чуть более сложный путь познания возможностей Automator. И я надеюсь, что вы будете пробовать, экспериментировать и учиться решать свои задачи максимально удобным способом.

Понятно, что компьютер это инструмент и не обязательно уметь на нем программировать, но это знание позволяет использовать его более эффективно.

30
Логотип iPhones.ru
iPhones.ru
Продолжаем рассматривать примеры использования Automator в повседневной жизни. В первой статье в комментариях был задан вопрос: как сделать автоматической переименование файлов на основании имени папки. Попробуем решить данную задачу максимально красиво. Задача Произвести автоматическое переименование файлов в папке, проигнорировав предыдущее имя. В качестве нового имени использовать название папки и инкрементальный индекс. Для решения задачи потребуются...

30 комментариев

Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик из TikTok
Котик из TikTok
Котик из TikTok
Котик из TikTok
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Видео мем
Видео мем
Видео мем
Видео мем
Видео мем
Видео мем

Какие правила в комментариях
  1. Red_Baron avatar
    Red_Baron 4 мая 2015
    0

    Wow. Надо попробовать. Автор еще про Automator… )

    Войди на сайт, чтобы ответить
    Ответить
  2. V83 avatar
    V83 4 мая 2015
    0

    Скрипт склеивает PDF файлы в один многостраничный https://yadi.sk/d/QTc85tJxgRGVZ

    Войди на сайт, чтобы ответить
    Ответить

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.