функция автоматического удаления специальных символов из имен файлов при сохранении в MacOS X

Я часто создаю PDF-файлы с веб-страниц в MacOS X (10.6), и очень часто у меня возникает проблема, что автоматически предлагаемое имя файла (на основе имени веб-страницы) содержит много специальных символов.

поэтому мне интересно: есть ли простой способ (apple script, Shell script, OS X service), который принимает строку (например, это имя файла) и преобразует ее

  • удаление всех пробелов и других специальных символов (также те, которые могут быть разрешены в OS X, но запрещено в Windows или Linux!! как я часто переношу файлы на наш ПК)
  • может быть, начиная каждое слово (после пробела) с заглавной буквы
  • ... что еще может быть важно?

Я использую Quicksilver, поэтому, возможно, можно было бы создать команду, которая позволяет заменить текущее выделение текста (в файле save as... dialog) преобразованной строкой.

24
задан MostlyHarmless
13.02.2023 23:02 Количество просмотров материала 3643
Распечатать страницу

2 ответа

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


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

добавить один Выполнить Скрипт действие из библиотеки, и вставьте следующий скрипт код:

sed 's|[^a-zA-Z0-9]||g'

это конкретный скрипт, простой sed замена удалить все не алфавитно-цифровые символы из имени файла. Он использует a-zA-Z0-9 как белый список разрешенных символов, добавьте его по желанию.

вы также можете выполнять другие действия и связывать их вместе. Например, tr [A-Z] [a-z] все будет в нижнем регистре, и sed 's|[^a-zA-Z0-9]||g' | tr [A-Z] [a-z] объединит два.

Сохранить как, например,Очистить Имя Файла и при необходимости назначить сочетание клавиш в Системные Настройки "Клавиатура" Сочетания Клавиш " Услуги. Вы также должны иметь возможность вызывать службы с помощью Quicksilver, просто введите их имя.


когда вы Сохранить как... или аналогичное диалоговое окно, выберите имя файла (он выбран по умолчанию):

enter image description here

вызовите службу Меню Программы "Службы" Очистить Имя Файла (или используйте сочетание клавиш вызванный.) Он будет передавать имя файла по конвейеру через сценарий и использовать его вывод для замены выделения.

enter image description here


для заголовка и удаления плохих символов (я также храню подчеркивание, точку и дефис), следующий код сценария, кажется, в основном работает для меня:

perl -ane 'foreach $wrd(@F){print ucfirst($wrd)." ";}' | sed 's|[^a-zA-Z0-9_.-]||g'

enter image description here

4
отвечен Daniel Beck 2023-02-15 06:50

та же идея, что и у Даниила. Создайте сервис in Automator. Замените Выполнить Скрипт Shell с /usr/bin/ruby и добавить следующее:

input, output = STDIN.read, ""
input.each("\s") {|word| output << word.capitalize}
puts output.gsub!(/[^0-9A-Za-z\-]/, '')

это даст вам капитализацию, и вы можете сделать немного больше, конечно, если вы знаете Ruby. Вы можете запустить службу с помощью QuickSilver, но вам нужно будет активировать свой браузер с помощью AppleScript раньше, я думаю.

3
отвечен slhck 2023-02-15 09:07

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх