8

Я пытаюсь создать какую-то форму процесса, которая позволит пользователю выбрать папку и перебрать все файлы и очистить любые слэши, дефисы и т.д. От соответствующих имен файлов.

Я программирую на Windows, но это немного из моей глубины на OSX.

Я нашел это (процесс автоматизации для удаления плохих символов из одной строки), но мне нужно что-то, что будет повторяться и быть легко используемым и распространяться среди пользователей в сети Mac.

Спасибо за любое предложение помочь

2 ответа2

12

Я обернул это в приложение, чтобы вы могли легко распространять его. Он попросит папку, а затем очистит имена файлов.

Загрузите это здесь.

Если эта ссылка не работает, вы можете создать следующее приложение в Automator:

Все, что вам нужно сделать, это:

  • Запросить элементы поиска (вы должны разрешить только папки)
  • Установите этот результат как переменную
  • Запустите сценарий оболочки (вам нужно передать ввод в качестве аргументов, а не в stdin)

    for f in "$1"/*; do
      dir="$(dirname "$f")"
      file="$(basename "$f")"
      mv -- "$f" "${dir}/${file//[^0-9A-Za-z.]}"
    done
    
9

Единственными символами, которые не допускаются в именах файлов в OS X, являются NUL и либо косая черта ASCII, либо двоеточие ASCII в зависимости от контекста. Символы, которые отображаются в Finder в виде прямой косой черты, отображаются в виде двоеточий в оболочках и наоборот.

Вы можете использовать команды оболочки, как это, хотя:

for f in *;do mv "$f" "${f//[^0-9A-Za-z.]}";done
find . -type f|while read f;do b=${f##*/};mv "$f" "${f%/*}/${b//[^[:alnum:].]}";done
brew install rename;find . -type f -exec rename 's/[^0-9A-Za-z.\/]/-/g;s/-+/-/g' {} \;
rename -z *

Или просто используйте приложение, такое как Name Mangler:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .