Введите в такт песни. Начните с медленного ритма и продолжайте свой путь. Не торопись. Печатание в пакетах часто контрпродуктивно. Ритм вызывает точность. Клавиатура похожа на музыкальный инструмент, и именно так музыканты обретают точность. Вам также нужно регулярно тренироваться, даже если каждый день по 5 минут, чтобы тренировать мышцы.
Я забыл детали, но я помню, что у одного известного скрипача спросили следующее:
«Как ты научился играть так быстро?»
Его ответ: «Действительно, действительно медленно».
:)
Не отчаивайтесь, поскольку в OSX вы также можете получить доступ к sed и grep через команду «do shell script». Итак:
set thecommandstring to "echo \"" & filename & "\"|sed \"s/[0-9]\\{10\\}/*good*(&)/\"" as string
set sedResult to do shell script thecommandstring
set isgood to sedResult starts with "*good*"
Мои навыки работы с sed не слишком высоки, поэтому может быть более элегантный способ, чем добавлять * хорошо * к любому имени, которое соответствует [0-9] {10}, а затем искать * хорошо * в начало результата. Но в основном, если имя файла - «1234567890dfoo.mov», это запустит команду:
echo "1234567890foo.mov"|sed "s/[0-9]\{10\}/*good*(&)/"
Обратите внимание на экранированные кавычки \ "и экранированную обратную косую черту \\ в applescript. Если вы экранируете вещи в оболочке, вы должны избегать экранирования . Итак, чтобы запустить сценарий оболочки, в котором есть обратная косая черта, вы должны экранировать ее для оболочки, например \\, а затем избегать каждой обратной косой черты в applescript, например, \\\\. Это может быть довольно трудно читать.
Так что все, что вы можете сделать в командной строке, вы можете сделать, вызвав ее из applescript (у-у-у!). Все результаты на stdout возвращаются скрипту как результат.
Я уверен, что есть приложение Applescript Addition или сценарий оболочки, который можно вызвать для добавления регулярного выражения в сгиб, но я избегаю зависимостей для простых вещей. Я использую этот шаблон стиля все время ...
set filename to "1234567890abcdefghijkl"
return isPrefixGood(filename)
on isPrefixGood(filename) --returns boolean
set legalCharacters to {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}
set thePrefix to (characters 1 thru 10) of filename as text
set badPrefix to false
repeat with thisChr from 1 to (get count of characters in thePrefix)
set theChr to character thisChr of thePrefix
if theChr is not in legalCharacters then
set badPrefix to true
end if
end repeat
if badPrefix is true then
return "bad prefix"
end if
return "good prefix"
end isPrefixGood