Очистіть імена файлів за допомогою Automator


2

Я досить новачок у Automator, оскільки використовував його лише один раз. Що я намагаюся зробити, це очистити купу активів для Android, які названі так:

01_something
1_something_else
002_something_too

Що я хочу зробити - це видалити провідні цифри + підкреслення, тобто будь-які провідні символи, що не бувають алфавітом. Я гадаю, що це можна зробити, маючи достатньо розумний сценарій видалити їх, можливо, якимось способом регулярного вираження, або запросивши запитання, скільки символів я хочу видалити, якщо Автоматизатор навіть це підтримує.

По-друге, я хотів би додати префікс до файлів, наприклад, tile_або ab_. Знову ж таки, якби я міг вибрати кілька файлів у Finder і вибрати "Додати префікс" чи щось таке, і ввести якийсь текст у підказку, це було б оптимально.

Відповіді:


5

Немає необхідності в спеціальному програмному забезпеченні для перейменування файлів, щоб робити такі відносно прості операції з перейменування пакетів - Automator дозволить вам створювати сервіси, які роблять те, що ви хочете.

Ваше перше завдання (вилучення числового префікса, за яким імена файлів форми підкреслення) можна вирішити так:

  1. створити службу Automator (виберіть "Service", коли буде запропоновано, який робочий процес створити Automator). Встановіть його як "Файли чи папки" як вхідні дані.
  2. додайте дію "Елементи пошуку фільтрів" і встановіть її для фільтрації за умови "немає", що відповідає "вид папки", щоб переконатися, що у вас є лише файли.
  3. Додайте дію «Запустити скрипт оболонки» та переконайтеся, що вона працює /bin/bashта приймає вхід «як аргументи». Вставте наступний код:

    shopt -s extglob
    for f in "$@"; do
        fpath="${f%/*}"
        fname="${f##*/}"
        mv "$f" "$fpath"/"${fname/#+([[:digit:]])_/}"
    done
    

    - див . Розділ Довідкового керівництва Bash про узгодження шаблонів для пояснення того, як це працює (рекомендується прочитати для цієї операції все одно :)).

  4. збережіть до місця за замовчуванням як "Видалити префікс".

- тепер у меню "Сервіс" Finder (і контекстне меню файлів і папок) з'явиться "Видалити префікс", який буде перейменовувати файли, щоб числовий префікс, за яким підкреслювалося, викреслили з назви файлу.

Друге завдання (префіксація файлів вибраним рядком) ще простіше досягти, використовуючи дію «Стандартний автоматизатор»:

  1. створити службу автоматизації, як описано в кроках 1 і 2 вище.
  2. додайте дію "Перейменувати елементи пошуку". Встановіть його на "Додати текст", введіть префікс за замовчуванням у текстове поле (якщо вам подобається), встановіть рядок, який застосовуватиметься "перед назвою". Виберіть "Параметри" в нижньому рядку дії та поставте галочку "Показати цю дію під час запуску" (відмова від відповідальності: Я в німецькій системі - усі переклади приблизні).
  3. збережіть до місця за замовчуванням як "Додати префікс".

- коли ви запускаєте службу на одному або декількох файлах, ви побачите таке діалогове вікно:

Діалогове вікно параметрів перейменування автоматизатора

(а точніше, його еквівалент у вашій системній мові), де ви можете редагувати префікс, який ви хочете використовувати перед його застосуванням.

Щасливі перейменування за допомогою бортових здібностей OS X ':).


@kopishke: Велике спасибі! Будь-які рекомендовані ресурси для кращого навчання Automator?
Джош

1
Mac OS X Автоматизація - хороша відправна точка.
kopischke

0

Я завжди знаходив комерційну програму Better Finder Перейменуйте економію часу, коли намагаюся розробити такі складні дії.

Минулого року у мене був гумористичний набір файлів PDF (> 25k окремих файлів!), Які потребували зміни їх файлів з FirstName, LastName .pdf на LastName_FirstName .pdf. Хоча це досить простий мод імені файлів, ABFR має набагато більш досконалі функції, які дозволять вам робити все, що вам потрібно.

Що ще полегшило роботу, це дуже класний механізм, за допомогою якого ABFR може створити крапельку з ваших специфікацій перейменування. Видаліть папку або файл на краплі - ABFR обробляє файли спалахом.

(Розкриття інформації: Я дуже задоволений клієнт цього програмного забезпечення і не маю фінансових інтересів до ABFR.)


ОП запитав про рішення Автоматизатора. Рекомендувати сторонне програмне забезпечення було б прийнятним лише в тому випадку, якщо Automator не надав способу цього досягти, але це так - дивіться мою відповідь .
kopischke

Не ставте на це занадто тонкої точки, копіще, але сам Automator не може виконати потрібну Джош операцію. Ваш сценарій оболонки, на який посилаються в Автоматизаторі, робить важкий підйом. Можливо, Джош, як і я, не вміє писати сценарії оболонки з вашим чуттям та еланом, і вважає за краще використовувати додаток, який виконує роботу швидко і тихо. Я теж хотів би навчитися більше технік сценаріїв оболонок, але у мене обмежений час / бажання, капізація?
IconDaemon

Ні, щоб не ставити на ньому занадто точну крапку, але Automator робить половину того, що задає ОП, використовуючи дії, що настроюються з графічним інтерфейсом (префіксація файлів вибирається рядком), якщо це означає "само собою". Я також стверджую, що дії сценарію AppleScript і оболонки оболонки поставляються разом із Automator, тому вони також вважаються "самі собою", але це питання семантики. У всякому разі, це не було критикою ваших уподобань у програмному забезпеченні (я сам використовую ім'я Mangler) - лише моя думка, що на Stack Exchange всі ми повинні намагатися дотримуватися поставленого питання якомога ближче.
kopischke
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.